如果我为具有针对不同环境设置的配置文件的应用程序设置了Maven构建(比如prod vs. dev,定义不同的数据库设置和类似的东西),那么“安装”目标似乎没有意义,因为我不知道哪个环境安装到我的仓库中 - 我刚刚得到了com.example.myproject:myapp:0.0.1。
我是否误解了某些内容,或者是否应将其用于其他目标?
答案 0 :(得分:9)
好吧,您可以使用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>
答案 1 :(得分:0)
您运行常用的mvn命令并可以使用-P http://maven.apache.org/guides/introduction/introduction-to-profiles.html选择适当的配置文件因此它取决于您选择的配置文件,安装在存储库中的内容。