Java 如何在maven中构建特定文件夹?

Java 如何在maven中构建特定文件夹?,java,maven,Java,Maven,我有一个文件夹myApp1,pom.xml位于myApp1中。这是myApp1的租用人 myAppl1 |--src |--main |--java (Java Source Code) |--resources some xml files and doc files |--pom.xml 现在,如果我进行mvn打包,它会构建所有文件夹并生成jar文件,基

我有一个文件夹myApp1,pom.xml位于myApp1中。这是myApp1的租用人

myAppl1
  |--src
       |--main
             |--java 
               (Java Source Code)
             |--resources
               some xml files and doc files 
  |--pom.xml
现在,如果我进行mvn打包,它会构建所有文件夹并生成jar文件,基本上它会将所有文件放在jar文件的resources文件夹下

我想要的是只在java文件夹下构建文件,它对资源没有任何依赖性folderjava文件依赖性在POM文件中提到,POM文件是存储库中的JAR

我不确定如何在maven中构建特定文件夹。我尝试了这个mvn安装-pl src\main\java-am,但是说在reactor中找不到所选的项目

编辑这是我以前在pom.xml中所做的

<pluginManagement>
   <plugins>
<plugin> 
        <artifactId>maven-jar-plugin</artifactId> 
        <version>${maven-jar-plugin.version}</version> 
        <configuration> 
            <verbose>true</verbose> 
            <excludes> 
                <exclude>resources/*</exclude> 
                <exclude>webapp/*</exclude>                     
            </excludes> 
        </configuration> 
</plugin> 
</plugins>
 </pluginManagement>
但是我得到了[ERROR]格式错误的POM C:\myProject\POM.xml:无法识别的标记:“pluginMana” gement'位置:已看到开始标记…\r\n\r\n ... @55:21@C:\myProject\pom.xml,第55行,第21列->[Help 2]

您必须使用maven jar插件,并将其配置为排除不希望包含在jar中的文件或目录。另外,在Maven网站上查看它。以下是maven jar插件的示例配置:

您必须使用maven jar插件并将其配置为排除您不希望包含在jar中的文件或目录。另外,在Maven网站上查看它。以下是maven jar插件的示例配置:


您必须将maven jar插件声明放在部分,而不是

中。您必须将maven jar插件声明放在部分,而不是

中。这将是一个“不要这样做”的答案

Maven希望这些资源是必须最终出现在您的工件中的文件,这就是资源的用途。如果你有其他文件,它们真的应该放在其他地方

话虽如此,但可能会混淆所有期待常规行为的人,并告诉maven src/main/resources中的文件实际上不是资源

要做到这一点,请在POM构建部分中说明

src/main/resources **/*
资源复制是由处理的,因此其文档值得一看,以查找与资源相关的问题。

这将是一个“不要这样做”的答案

Maven希望这些资源是必须最终出现在您的工件中的文件,这就是资源的用途。如果你有其他文件,它们真的应该放在其他地方

话虽如此,但可能会混淆所有期待常规行为的人,并告诉maven src/main/resources中的文件实际上不是资源

要做到这一点,请在POM构建部分中说明

src/main/resources **/*
资源复制由处理,因此其文档值得一看,以查找与资源相关的问题。

对于不应复制到工件文件中的文件,可以使用projects src/main/config目录,该目录还满足maven命名约定


在我的特殊情况下,我使用这个目录来存储二进制源,比如.exe文件aso。它被程序集插件压缩,并作为zip和bin部署到我的存储库中,运行良好,看起来像是一个干净的工作流。

对于不应复制到工件文件中的文件,可以使用projects src/main/config目录,这也完全符合maven命名约定


在我的特殊情况下,我使用这个目录来存储二进制源,比如.exe文件aso。它被汇编插件压缩,并以zip和bin的形式部署到我的存储库中,运行良好,看起来是一个干净的工作流。

Jugual您能否澄清我编辑部分中的错误。提前感谢Plugins标签应该在build元素中,而不是pluginManagement。请参考答案中修改过的代码段。嘿,jugal,谢谢,但它仍然包括参考资料和webapp文件夹下的文件。我也尝试过这样做**/resources/*其中resources是文件夹名。您必须明确指定resources目录下的所有文件。例如,如果您的资源目录中有properties目录和logback.xml文件,并且您不想在这个目录中包含任何内容,那么您必须添加如下内容:properties properties/*logback.xmlJugal,如果我给出**/*.xml,那么它可以工作。但我认为不支持排除文件夹。请澄清我编辑部分的错误。提前感谢Plugins标签应该在build元素中,而不是pluginManagement。请参考答案中修改过的代码段。嘿,jugal,谢谢,但它仍然包括参考资料和webapp文件夹下的文件。我也尝试过这样做**/resources/*其中resources是文件夹名。您必须明确指定resources目录下的所有文件。例如,如果资源中有属性目录和logback.xml文件 如果您不想在这个目录中包含任何内容,那么您必须添加如下内容:properties properties/*logback.xmlJugal,如果我给出**/*.xml它可以工作的话。但不支持排除文件夹的iLink
    <build>
    ...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <version>${maven-jar-plugin.version}</version>
            <configuration>
                <verbose>true</verbose>
                <excludes>
                    <exclude>properties</exclude>
                    <exclude>properties/*</exclude>
                    <exclude>spring</exclude>
                    <exclude>spring/*</exclude>
                    <exclude>logback.xml</exclude>
                </excludes>
            </configuration>
        </plugin>
     ...
     </plugins>
     ...
     </build>