gpt4 book ai didi

java - Maven 配置文件不工作且测试失败

转载 作者:行者123 更新时间:2023-12-01 14:47:29 25 4
gpt4 key购买 nike

我开始使用 Maven 的配置文件来构建多环境 jar。

我关注了official docs来做到这一点。

首先,验证问题:

我读到,您应该始终拥有一个由 Maven 项目生成的包,但我只想生成多环境 jar(即:仅更改每个 jar 的属性文件)。我认为没有必要生成多个项目来执行此操作,对吗?

现在解释:

我有一个应用程序,它可以读取文件并应用一组特定的评论,然后再将一些信息插入数据库。我想测试此验证是否正常,并且无论稍后在数据库中是否失败,我都会得到正确的结果。 因此,在这个应用程序中,我使用动态设置的 DAO。这是:我的应用程序在运行时从 config.properties 文件获取 DAO 类。我创建了一些外观 DAO 来模拟真实的 DAO(例如:DAOApproveAll,它将模拟数据库中的所有事务都正常)。

在单元测试中,我加载 config.properties 来更改(并稍后恢复更改)参数 daoimplclass 的值,该参数是保存该类的参数。例如:

 Properties prop = Configurator.getProperties("config");
final String DAODEFAULT = prop.getProperty("daoimplclass");
final static String DAOAPPROVEALL = "com.package.dao.DAOAllApproved";
public void testAllAproved() {
try {
Processor processor = Processor.getInstance();
prop.setProperty("daoimplclass", DAOAPPROVEALL);
...
}
finally{prop.setProperty("daoimplclass", DAODEFAULT);}

我做了很多测试(使用不同的 DAO 外观),以验证如果数据库中出现不同的结果会发生什么。

现在,我将 config.properties 更改为 2 个文件:config-dev.propertiesconfig-prod.properties。并将原始的 pom.xml 更改为使用如下配置文件:

<profiles>
<profile>
<id>dev</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete file="${project.build.outputDirectory}/config.properties"/>
<copy file="src/main/resources/config-dev.properties"
tofile="${project.build.outputDirectory}/config.properties"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>false</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>dev</classifier>
<source>1.6</source>
<target>1.6</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>prod</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete file="${project.build.outputDirectory}/config.properties"/>
<copy file="src/main/resources/config-prod.properties"
tofile="${project.build.outputDirectory}/config.properties"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>prod</classifier>
<source>1.6</source>
<target>1.6</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

现在,当我在 Netbeans 中执行“清理并构建”时,我在执行测试时遇到错误,因为它找不到 config.properties。当然,我创建了第三个 config.properties (另外两个将与 -dev 和 -prod 一起使用)ant,它编译但不会生成 2 个 jar,而只生成一个。

<小时/>

我的正式问题:

  • 我的个人资料做错了什么?
  • 如何才能让测试正常运行并且仅针对开发人员?

最佳答案

要通过 Netbeans 激活配置文件,您可以尝试以下任务:-

  1. 右键单击您的项目,然后从上下文菜单中选择属性
  2. 从左侧面板的类别中选择配置
  3. 在右侧面板中,您将看到 pom.xml 中定义的各种配置文件。您可以通过选择它们并单击激活按钮来激活它们,也可以通过单击添加按钮创建新的。

希望这会有所帮助。

关于java - Maven 配置文件不工作且测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15276319/

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