w ^希望我的Maven项目,以在一旦发生三个神器用不同的分类。 我知道我可以与模块等这实际上是我想生产配置DEV,舞台和PROD环境资源项目生产。
我想有是运行mvn:install
一次,并有my.group:resources:1.0:dev
, my.group:resources:1.0:stage
和my.group:resources:1.0:prod
在我的回购协议。
w ^希望我的Maven项目,以在一旦发生三个神器用不同的分类。 我知道我可以与模块等这实际上是我想生产配置DEV,舞台和PROD环境资源项目生产。
我想有是运行mvn:install
一次,并有my.group:resources:1.0:dev
, my.group:resources:1.0:stage
和my.group:resources:1.0:prod
在我的回购协议。
这可以在不配置文件,如果你指定多个插件执行和完成资源的过滤 。
创建一个属性为每个版本的文件${basedir}/src/main/filters
(如prod.properties,dev.properties)持有相应值的每个环境。
打开你的资源过滤:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
现在添加资源插件执行。 注意不同的过滤器文件和输出目录。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>default-resources</id>
<phase>process-resources</phase>
<goals>
<goal>resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/dev</outputDirectory>
<filters>
<filter>${basedir}/src/main/filters/dev.properties</filter>
</filters>
</configuration>
</execution>
<execution>
<id>prod</id>
<phase>process-resources</phase>
<goals>
<goal>resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/prod</outputDirectory>
<filters>
<filter>${basedir}/src/main/filters/prod.properties</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
最后,罐子插件; 注意分类和输入目录:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>dev</classifier>
<classesDirectory>${project.build.outputDirectory}/dev</classesDirectory>
</configuration>
</execution>
<execution>
<id>jar-prod</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>prod</classifier>
<classesDirectory>${project.build.outputDirectory}/prod</classesDirectory>
</configuration>
</execution>
</executions>
</plugin>
运行mvn clean install
应产生适当过滤资源与文物dev
和prod
分类像你想要的。
在这个例子中,我使用的执行标识default-resources
和default-jar
的开发版本。 如果没有这个,你也当你建立得到一个非保密罐子神器。
只是一个供参考 - 把版本号在那里,以确保您的版本支持自定义过滤器。 在行家3我定住了这样为例。 如果没有版本没有奏效。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
...
</plugin>