Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven程序集插件添加依赖项_Java_Maven_Maven Assembly Plugin - Fatal编程技术网

Java Maven程序集插件添加依赖项

Java Maven程序集插件添加依赖项,java,maven,maven-assembly-plugin,Java,Maven,Maven Assembly Plugin,我有一个java应用程序,使用maven assembly插件,我想将依赖项添加到发行版中的a/lib文件夹中 在web项目中,这很简单,因为JAR已经在war文件中。我无法在standart java应用程序中执行此操作,因为所有外部JAR都在我的本地.m2存储库中。我经常使用此程序集配置 <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="ht

我有一个java应用程序,使用maven assembly插件,我想将依赖项添加到发行版中的a/lib文件夹中


在web项目中,这很简单,因为JAR已经在war文件中。我无法在standart java应用程序中执行此操作,因为所有外部JAR都在我的本地.m2存储库中。

我经常使用此程序集配置

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">

    <id>assembly</id>

    <formats>
        <format>zip</format>
    </formats>

    <includeBaseDirectory>false</includeBaseDirectory>

    <dependencySets>
        <dependencySet>
            <outputDirectory>lib</outputDirectory>
            <outputFileNameMapping>${artifact.groupId}.${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
            <useProjectArtifact>false</useProjectArtifact>
            <!-- you may place excludes here -->
        </dependencySet>
    </dependencySets>

    <files>
        <file>
            <outputDirectory>/</outputDirectory>
            <source>${project.build.directory}/${project.artifactId}-${project.version}.jar</source>
            <destName>${project.artifactId}.jar</destName>
        </file>
    </files>

    <fileSets>
        <fileSet>
            <outputDirectory>config</outputDirectory>
            <directory>config</directory>
        </fileSet>
        <fileSet>
            <outputDirectory>/</outputDirectory>
            <directory>src/main/bin</directory>
        </fileSet>
    </fileSets>

</assembly>

装配
拉链
假的
解放党
${artifact.groupId}.${artifact.artifactId}.${artifact.extension}
假的
/
${project.build.directory}/${project.artifactId}-${project.version}.jar
${project.artifactId}.jar
配置
配置
/
src/main/bin
然后我在我的POM中用

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <id>create-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <descriptors>
                    <descriptor>assembly/assembly.xml</descriptor>
                </descriptors>
            </configuration>
        </execution>
    </executions>
</plugin>

org.apache.maven.plugins
maven汇编插件
2.4
创建程序集
包裹
单一的
assembly/assembly.xml
如果您还需要一个可运行的JAR:


org.apache.maven.plugins
maven jar插件
2.4
假的
配置/
真的
解放党/
习俗
$${artifact.groupId}.$${artifact.artifactId}.$${artifact.extension}

我经常使用此程序集配置

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">

    <id>assembly</id>

    <formats>
        <format>zip</format>
    </formats>

    <includeBaseDirectory>false</includeBaseDirectory>

    <dependencySets>
        <dependencySet>
            <outputDirectory>lib</outputDirectory>
            <outputFileNameMapping>${artifact.groupId}.${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
            <useProjectArtifact>false</useProjectArtifact>
            <!-- you may place excludes here -->
        </dependencySet>
    </dependencySets>

    <files>
        <file>
            <outputDirectory>/</outputDirectory>
            <source>${project.build.directory}/${project.artifactId}-${project.version}.jar</source>
            <destName>${project.artifactId}.jar</destName>
        </file>
    </files>

    <fileSets>
        <fileSet>
            <outputDirectory>config</outputDirectory>
            <directory>config</directory>
        </fileSet>
        <fileSet>
            <outputDirectory>/</outputDirectory>
            <directory>src/main/bin</directory>
        </fileSet>
    </fileSets>

</assembly>

装配
拉链
假的
解放党
${artifact.groupId}.${artifact.artifactId}.${artifact.extension}
假的
/
${project.build.directory}/${project.artifactId}-${project.version}.jar
${project.artifactId}.jar
配置
配置
/
src/main/bin
然后我在我的POM中用

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <id>create-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <descriptors>
                    <descriptor>assembly/assembly.xml</descriptor>
                </descriptors>
            </configuration>
        </execution>
    </executions>
</plugin>

org.apache.maven.plugins
maven汇编插件
2.4
创建程序集
包裹
单一的
assembly/assembly.xml
如果您还需要一个可运行的JAR:


org.apache.maven.plugins
maven jar插件
2.4
假的
配置/
真的
解放党/
习俗
$${artifact.groupId}.$${artifact.artifactId}.$${artifact.extension}

tnx useProjectArtifact=false的任何原因?您将项目jar复制到哪里?是的,我们已经决定将主jar放在根目录中。这将反映在部件的“文件”部分中。我们通常在src/main/bin中还有几个二进制文件(例如Windows批处理文件等),这些文件也会复制到根目录。tnx useProjectArtifact=false的原因是什么?您将项目jar复制到哪里?是的,我们已经决定将主jar放在根目录中。这将反映在部件的“文件”部分中。我们通常在src/main/bin中还有几个二进制文件(例如Windows批处理文件等),它们也会复制到根目录。