【问题标题】:How do I exclude x.class from being compiled into my jar file?如何排除 x.class 被编译到我的 jar 文件中?
【发布时间】:2019-10-10 05:12:20
【问题描述】:

我正在尝试让 POM.xml 生成两个 jar 文件。一个包含所有类,另一个不包括其中一个类。

我要排除的文件名为“ExcludeMe1.java”。我是新手,但它不是我的第一个圈地,在下面的代码中,我排除了 ExcludeMe1.class。但是 jar 文件的大小保持不变,我相信它仍然包含我排除的类。这就是我的意思...

    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
            <execution>
              <id>make-assembly</id>
              <phase>package</phase>
              <goals>
                <goal>single</goal>
              </goals>
              <configuration>
                  <appendAssemblyId>false</appendAssemblyId>
                  <archive>
                    <manifest>
                      <mainClass>com.costanzo.mavendemo.MavenDemo1</mainClass>
                    </manifest>
                  </archive>
                  <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                  </descriptorRefs>
                </configuration>
            </execution>
            <execution>
              <id>make-assembly22</id>
              <phase>package</phase>
              <goals>
                <goal>single</goal>
              </goals>
              <configuration>
                  <excludes>
                      <exclude>${project.basedir}/target/excludeMe/ExcludeMe1.class</exclude>
                  </excludes>
                  <archive>
                    <manifest>
                      <mainClass>com.costanzo.mavendemo.MavenDemo1</mainClass>
                    </manifest>
                  </archive>
                  <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                  </descriptorRefs>
                </configuration>
            </execution>
          </executions>
      </plugin>
    </plugins>

我期望发生的是排除类文件,其大小为 1KB。因此,我期望 N 和 N-1,而不是让两个 jar 的大小都为 N。

我对 Maven 还是很陌生,希望大家能理解。如果您需要,请随时提问我会经常检查这个东西,因为它是一个高优先级项目。

【问题讨论】:

  • 为什么要做一个项目的两个jar?使用 maven-assembly-plugin 完成为什么?制作一个可执行的jar?这是不同的东西吗?排除文件通常是个坏主意...您排除的类不应该是项目的一部分,或者只是如果还没有准备好被放到版本控制中的分支上...
  • 基本上我已经演示了这个基本概念,以便获得隐藏文件夹的答案。如果给我一个关于类文件的示例,我将能够从那里找出一个文件夹

标签: java xml maven


【解决方案1】:

据我所知,使用 maven 排除单个类是 not possible。可以排除罐子。

【讨论】:

【解决方案2】:

您只能从构建过程中排除 jar 文件。

【讨论】:

  • 整个文件夹怎么样?
猜你喜欢
  • 2014-04-13
  • 1970-01-01
  • 2013-07-17
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 2019-06-19
  • 2016-11-23
相关资源
最近更新 更多