如何做';项目>;清洁';在Java maven项目的命令提示符中

如何做';项目>;清洁';在Java maven项目的命令提示符中,java,eclipse,maven,batch-file,jenkins,Java,Eclipse,Maven,Batch File,Jenkins,我有一个maven项目,我正在Jenkins上运行。项目根目录下的resources文件夹中包含config.properties文件。有时在编译和运行项目时,我会遇到一个错误:Exception:java.io.FileNotFoundException:property文件'config.properties'未在类路径中找到 在eclipse中,当我执行“Project>Clean”时,我消除了这个错误。但是,由于我在Jenkins中使用批处理文件运行此程序,因此无法“项目>清理”。作为一

我有一个maven项目,我正在Jenkins上运行。项目根目录下的resources文件夹中包含config.properties文件。有时在编译和运行项目时,我会遇到一个错误:
Exception:java.io.FileNotFoundException:property文件'config.properties'未在类路径中找到

在eclipse中,当我执行“Project>Clean”时,我消除了这个错误。但是,由于我在Jenkins中使用批处理文件运行此程序,因此无法“项目>清理”。作为一个棘手的解决方法,我在eclipse中打开项目,执行“project>Clean”并在Jenkins上重新构建项目,之后效果很好

从Jenkins中的批处理文件运行时,如何进行“项目>清理”

更新: 这就是我的项目结构的样子。config.properties文件保存执行测试的环境详细信息

POM.xml:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18.1</version>
            <configuration>
                <forkCount>100</forkCount>
                <suiteXmlFiles>
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>
</build>


<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<repositories>
    <!--other repositories if any -->
    <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file:${project.basedir}/lib</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.8.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.9</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-scratchpad</artifactId>
        <version>3.9</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.9</version>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.5</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.4.1</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.6.3</version>
    </dependency>
    <dependency>
        <groupId>com.relevantcodes</groupId>
        <artifactId>extentreports</artifactId>
        <version>2.41.2</version>
    </dependency>
    <dependency>
        <groupId>com.local</groupId>
        <artifactId>ewsc</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>com.local</groupId>
        <artifactId>msgparser</artifactId>
        <version>1.14</version>
    </dependency>

</dependencies>

maven编译器插件
3.3
1.8
1.8
org.apache.maven.plugins
maven surefire插件
2.18.1
100
testng.xml
UTF-8
项目.本地
项目
文件:${project.basedir}/lib
朱尼特
朱尼特
3.8.1
测试
公地io
公地io
2.4
org.jsoup
jsoup
1.8.3
org.apache.poi
poi
3.9
org.apache.poi
poi草稿行
3.9
org.apache.poi
poi ooxml
3.9
org.testng
testng
6.8.5
测试
org.apache.httpcomponents
httpclient
4.4.1
com.fasterxml.jackson.core
杰克逊数据绑定
2.6.3
相关代码
扩展端口
2.41.2
com.local
ewsc
1
com.local
msgparser
1.14

mvn clean*target*
在命令行中应该可以做到这一点

“如果出于某种原因,将clean添加到命令行不是一个选项,那么clean插件可以放入项目的pom.xml中,以便在每次构建项目时执行。”


[...]

配置文件位于文件夹
/resources

默认情况下,Maven(或m2e Eclipse插件)不会拾取该文件夹,因为
/resources
不是默认Maven目录结构的一部分。 默认情况下,如果仅用于测试,则应将资源置于
src/test/resources

有关Maven开箱即用的目录列表,请参见:


有一个Maven Build Helper插件可以用来扩展考虑过的文件夹,但是,如果你没有很好的理由这样做,我建议坚持默认的目录结构。

mvn clean
和Eclipse的“Project>clean”选项完全不同。显然,我看到了错误“异常:java.io.FileNotFoundException:在类路径中找不到属性文件'config.properties'“在执行mvn>clean和project>clean修复之后,始终保持一致。您不应该首先清理项目,而应该在构建过程中以某种方式依赖Eclipse。你能发布更多关于你当前配置的信息吗?你的POM?什么是
config.properties
?它是如何使用的?@Tunaki-已经回答了您的问题并添加了详细信息。希望信息足够。你应该考虑把你的詹金斯文件从你的项目源代码中移出。这可能是你描述的奇怪行为的原因。。。此外,如果只需要测试,而不需要,config.properties应该位于/src/test/resources下/resources@tom-谢谢,将config.properties文件移动到/src/test/resources工作正常。你能详细说明一下,这是如何造成差异的吗?JRE是如何从/src/test/resources获取文件的,在什么情况下我应该使用/resources?也许你可以写下来作为答复,我会接受的。
<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
         <execution>
            <id>auto-clean</id>
            <phase>initialize</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>