当前位置: 首页 > 知识库问答 >
问题:

从Gradle Jar构建中排除测试文件夹和资源

慕鸿波
2023-03-14

我正在尝试创建一个Jar用作Maven存储库

我已经构建了所有内容,所有类都准备好了。唯一的问题是gradlew./build包含了测试文件夹中的类和资源。我不希望这些作为jar的一部分,尤其是正在测试的资源文件。

因此,我的问题是,如何从jar构建任务中排除这些文件。我试过了

tasks.named('jar'){
    exclude('PATH/src/test/')

在我的身体里。格拉德尔:但那没用

我是Gradle和Maven的新手,所以任何洞察力都会有帮助。谢谢!

参考材料

build.gradle

plugins {
    // Apply the java-library plugin for API and implementation separation.
    id 'java-library'
    id 'maven-publish'
}

group = 'com.project.tools'
version = '1.0.0'


repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    api 'org.apache.commons:commons-math3:3.6.1'

    implementation 'com.google.guava:guava:31.0.1-jre'

    implementation platform('io.cucumber:cucumber-bom:7.1.0')
    implementation 'io.cucumber:cucumber-java'
    implementation 'io.cucumber:cucumber-junit-platform-engine'
    implementation 'io.cucumber:cucumber-junit'

    implementation 'com.googlecode.json-simple:json-simple:1.1.1'

}

tasks.named('jar'){
    manifest {
        attributes('Implementation-Title': project.name,
                'Implementation-Version': project.version)
    }
}

文件结构

project/
├─ tools/
│  ├─ build/
│  │  ├─ classes/
│  │  │  ├─ new_folder/
│  │  │  │  ├─ main/
│  │  │  │  ├─ test/  #I Don't Want This Here, This Classes Do Not Need To Be Accessible
│  │  ├─ generated/
│  │  ├─ libs/
│  │  ├─ reports/
│  │  ├─ resources/
│  │  │  ├─ test/  #Would rather not have this entire folder
│  │  │  │  ├─ com.project.tools/
│  │  │  │  ├─ test.properties  # Definitely Do Not Want This Included
│  │  ├─ test-results/
│  │  ├─ tmp/
│  ├─ src/
│  │  ├─ main/
│  │  │  ├─ java/
│  │  │  │  ├─ com.project.tools/
│  │  │  │  │  ├─ MyClasses.java
│  │  │  ├─ resources/
│  │  ├─ test/
│  │  │  ├─ java/
│  │  │  │  ├─ com.project.tools/
│  │  │  │  │  ├─ MyTestClasses.java
│  │  │  ├─ resources/
│  ├─ build.gradle

共有1个答案

万喜
2023-03-14

Gradle默认做正确的事情,没有必要从< code>jar中手动排除< code>test类/资源。

 类似资料:
  • 我今天升级了我的Spring工具套件,从那以后我就一直坚持正确地构建项目。当我- 我已经探索了100个链接,但到目前为止没有运气。更新之前一切正常。 如何让Maven包含src/main/resources和src/test/resources? .classpath文件(默认情况下我希望生成的资源文件夹): .classpath文件,当我执行Maven时-

  • 试图从我的构建中提取文件夹,但以下操作不起作用: 有什么想法吗?

  • 我有一个测试,包括jUnit测试和testng测试。它工作正常时,我运行'mvn测试'从父pom,但测试失败时,在jenkins建设。我需要一个方法来跳过詹金斯的测试。

  • 从Java中删除文件夹时发现问题。我使用了以下命令,但运气不好。但是,我可以使用Windows 8.1通过命令提示符删除文件夹: 在这三种情况下,我得到的例外是: java.io.IOException:无法运行程序rmdir:CreateProcess错误=2,系统找不到java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)java.la

  • 我想从我的checkstyle报告中忽略一个特定的文件夹(名为generated-sources ),因为它们是生成的。 我正在使用 eclipse-cs 来显示我的违规行为。 我在xml中添加了suppressionfilter: 我的压抑.xml看起来像这样: 但它不起作用。有什么想法吗?

  • 问题内容: 有时我会在使用svn时出错,并将文件夹卡在我的存储库中。我想删除这些文件夹,但是我找不到解决方法。请记住,我对SVN非常陌生。我从苹果终端运行此命令: 我收到消息: 我也试过,和。 我需要做什么? 问题答案: 看起来是必需的提交消息,并且您没有将系统配置为启动要添加一个编辑器的编辑器(未在命令行上指定)。 尝试这个: