我是Maven的新手,来自Rails背景.在高层次上,如果我正在运行测试,在本地运行应用程序以及部署到生产环境时,我想连接到不同的数据库.
这就是我的想法.当我运行mvn test它应该使用test.properties时,当我在mvn jetty:run本地运行它应该使用dev.properties,当我部署它时应该拾取已经在服务器上而不在WAR中的属性文件.
但我不知道这是如何在使用Maven构建的Java项目中完成的.
我们使用配置文件来区分不同的构建阶段,并且我们对每个配置文件使用具有不同程序集描述符的程序集插件.我们有类似下面的代码.我们的默认配置文件是开发,但是当我们发布时,"发布"配置文件会自动激活.程序集描述符非常简单,我们有一个"通用"目录结构,一个用于开发,一个用于发布.
<build>
<plugins>
<!-- Enable Java 6 features. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>6</source>
<target>6</target>
</configuration>
</plugin>
<!-- Configure for development environment. -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>package</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptors>
<descriptor>src/main/assembly/dist-dev.xml</descriptor>
</descriptors>
</configuration>
</plugin>
<!-- Deployment configuration. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<packaging>zip</packaging>
<file>target/${project.build.finalName}.zip</file>
<url>${project.distributionManagement.snapshotRepository.url}</url>
</configuration>
</plugin>
<!-- Release configuration. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<goals>assembly:assembly deploy:deploy-file</goals>
<useReleaseProfile>false</useReleaseProfile>
<arguments>-Prelease</arguments>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-bazaar</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<profiles>
<!-- Release profile. -->
<profile>
<id>release</id>
<build>
<plugins>
<!-- Artifact to deploy is assembled zip file. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<packaging>zip</packaging>
<file>target/${project.build.finalName}-bin.zip</file>
<url>${project.distributionManagement.repository.url}</url>
<updateReleaseInfo>true</updateReleaseInfo>
</configuration>
</plugin>
<!-- Configure for release environment. -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/dist-rel.xml</descriptor>
</descriptors>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4034 次 |
| 最近记录: |