Maven 配置文件并安装

发布于 2024-10-11 09:25:03 字数 186 浏览 2 评论 0原文

如果我为一个应用程序设置了 Maven 构建,并为不同的环境设置了配置文件(比如 prod 与 dev,定义不同的数据库设置等),那么“安装”目标似乎没有意义,因为我不这样做不知道我的存储库中安装了哪个环境 - 我刚刚得到 com.example.myproject:myapp:0.0.1。

我是否误解了什么,或者配置文件应该用于其他目标?

If I have Maven builds set up for an app with profiles set up for different environments (say like prod vs. dev, defining different DB settings and stuff like that) the 'install' goal doesn't seem to make sense, as I don't know which environment got installed into my repo - I've just got com.example.myproject:myapp:0.0.1.

Have I misunderstood something, or are profiles supposed to be used with other goals?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冰之心 2024-10-18 09:25:03

那么,您可以使用classifier 属性,以便每个配置文件都使用分类器创建一个jar,即每个环境都有一个唯一的jar。这是一个代码片段来说明这一点。当使用 dev 配置文件 (mvn -P dev install) 运行时,它会创建一个带有 -dev 分类器的 jar,例如 myapp- dev-0.0.1.jar

<project>
...
    <properties>
        <env></env>
    </properties>
...

    <build>
        <plugins>
            ...
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <classifier>${env}</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <profiles>
        ...
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
            </properties>
            ...
        </profile>
    </profiles>

</project>

Well, you could use the classifier attribute so that each profile creates a jar with the classifier, i.e. a unique jar for each environment. Here is a code snippet to illustrate this. When run with the dev profile (mvn -P dev install), it creates a jar with -dev classifier, like myapp-dev-0.0.1.jar

<project>
...
    <properties>
        <env></env>
    </properties>
...

    <build>
        <plugins>
            ...
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <classifier>${env}</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <profiles>
        ...
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
            </properties>
            ...
        </profile>
    </profiles>

</project>
花辞树 2024-10-18 09:25:03

您运行常用的 mvn 命令,并可以使用 -P http: //maven.apache.org/guides/introduction/introduction-to-profiles.html 因此,这取决于您选择的配置文件以及存储库中安装的内容。

You run the usual mvn commands and can select the appropriate profile with -P http://maven.apache.org/guides/introduction/introduction-to-profiles.html So it dependends on which profile you chose, what gets installed in the repository.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文