gpt4 book ai didi

java - 如何用maven管理开发、生产、测试​​配置?

转载 作者:行者123 更新时间:2023-12-02 08:16:21 27 4
gpt4 key购买 nike

我是 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>

关于java - 如何用maven管理开发、生产、测试​​配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6286206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com