【问题标题】:How to exclude some *.java files from the Maven build?如何从 Maven 构建中排除一些 *.java 文件?
【发布时间】:2021-10-31 03:54:24
【问题描述】:

我希望在这里找到有关从 Maven 构建中排除某些文件的问题的帮助。

问题的本质我的 Java 应用程序中有一个包需要在一段时间内几乎完全从项目中排除(除了几个类)。这是它的结构。

$ tree ./ -d
./
├── controller
│   └── dto
│       ├── rq
│       │   └── dss
│       └── rs
├── dao
│   └── impl
├── jobs
├── model
└── service
    ├── dto
    │   └── rq
    │       └── clientprofile
    └── impl

我尝试了以下解决方案,但都没有奏效:

1. 

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <webResources>
                        <resource>
                            <directory>${basedir}/src/main/webapp-${app.face}</directory>
                            <filtering>false</filtering>
                        </resource>
                        <resource>
                            <directory>${basedir}/src/main/webapp</directory>
                            <filtering>false</filtering>
                        </resource>
                        <resource>
                            <directory>${basedir}/src/main/webappf</directory>
                            <filtering>true</filtering>
                        </resource>
                        <resource>
                            <directory>${basedir}/src/main/java/com/<NDA>/<NDA>/server/<NDA>/</directory>
                            <filtering>false</filtering>
                            <excludes>
                                <exclude>controller/**</exclude>
                                <exclude>dao/**</exclude>
                                <exclude>jobs/**</exclude>
                                <exclude>model/**</exclude>
                                <exclude>service/dto/**</exclude>
                            </excludes>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>

2.


 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <webResources>
                        <resource>
                            <directory>${basedir}/src/main/webapp-${app.face}</directory>
                            <filtering>false</filtering>
                        </resource>
                        <resource>
                            <directory>${basedir}/src/main/webapp</directory>
                            <filtering>false</filtering>
                        </resource>
                        <resource>
                            <directory>${basedir}/src/main/webappf</directory>
                            <filtering>true</filtering>
                        </resource>
                    </webResources>
                    <packagingExcludes>
                        WEB-INF/classes/com/<NDA>/<NDA>/server/<NDA>/controller/**,
                        WEB-INF/classes/com/<NDA>/<NDA>/server/<NDA>/dao/**,
                        WEB-INF/classes/com/<NDA>/<NDA>/server/<NDA>/jobs/**,
                        WEB-INF/classes/com/<NDA>/<NDA>/server/<NDA>/model/**,
                        WEB-INF/classes/com/<NDA>/<NDA>/server/<NDA>/service/dto/**
                    </packagingExcludes>
                </configuration>
            </plugin>


3.  


  <!--Parent pom.xml-->    
  <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <encoding>UTF-8</encoding>
                        <source>1.8</source>
                        <target>1.8</target>
                        <excludes>
                            <exclude>src/main/java/com/<NDA>/<NDA>/server/<NDA>/controller/**/*.java</exclude>
                            <exclude>src/main/java/com/<NDA>/<NDA>/server/<NDA>/dao/**/*.java</exclude>
                            <exclude>src/main/java/com/<NDA>/<NDA>/server/<NDA>/jobs/**/*.java</exclude>
                            <exclude>src/main/java/com/<NDA>/<NDA>/server/<NDA>/model/**/*.java</exclude>
                            <exclude>src/main/java/com/<NDA>/<NDA>/server/<NDA>/service/dto/rq/**/*.java</exclude>
                        </excludes>
                    </configuration>
                </plugin>



  <!--Child pom.xml-->
  <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration combine.self="override">
                        </configuration>
                    </plugin>

【问题讨论】:

  • 这能回答你的问题吗? Maven: excluding java files in compilation
  • 为什么具体需要“排除”? “排除”具体是什么意思?
  • 如果您现在不想要它们,那么为什么不删除文件?只需删除它们。如果您以后再次需要它们,您仍然可以在历史记录中找到它们(您使用的是 VCS,对吗?)
  • 一般来说,如果你不想编译类(正如已经建议的那样),只需删除它们?问题是,如果它们没有被编译,为什么它们是项目的一部分?除此之外,您使用的是非常旧版本的插件,而且给定的配置即使没有错误也是不好的做法......这看起来:${basedir}/src/main/webapp-${app.face} 老实说真的很奇怪?

标签: java maven maven-3 maven-plugin


【解决方案1】:

正如 cmets 中已经说过的那样。

如果您不希望构建中的文件,只需删除它们。

如果您以后需要它们,请从您的 git 或 svn 中恢复它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 2017-12-28
    • 2017-07-13
    • 2023-03-05
    • 2018-12-10
    • 1970-01-01
    相关资源
    最近更新 更多