【问题标题】:unable to create jar file of web application using maven无法使用 maven 创建 Web 应用程序的 jar 文件
【发布时间】:2016-05-23 14:23:23
【问题描述】:

我正在尝试创建 Web 应用程序的 jar 文件。但它只是创建战争文件。我也更新<packaging>jar</packaging>

但不工作

pom

<?xml version="1.0"?>
<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <groupId>XertoPublicApp</groupId>
    <artifactId>XertoPublicApp</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>

        <repositories>
        <repository>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>central</id>
            <name>Central Repository</name>
            <url>http://repo.maven.apache.org/maven2</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <releases>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>central</id>
            <name>Central Repository</name>
            <url>http://repo.maven.apache.org/maven2</url>
        </pluginRepository>
    </pluginRepositories>
    <build>
        <sourceDirectory>C:\Users\musaddique\workspace\XertoPublicApp\src</sourceDirectory>
        <scriptSourceDirectory>C:\Users\musaddique\workspace\XertoPublicApp\src\main\scripts</scriptSourceDirectory>
        <testSourceDirectory>C:\Users\musaddique\workspace\XertoPublicApp\src\test\java</testSourceDirectory>
        <outputDirectory>C:\Users\musaddique\workspace\XertoPublicApp\target\classes</outputDirectory>
        <testOutputDirectory>C:\Users\musaddique\workspace\XertoPublicApp\target\test-classes</testOutputDirectory>
        <resources>
            <resource>
                <directory>C:\Users\musaddique\workspace\XertoPublicApp\src</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>C:\Users\musaddique\workspace\XertoPublicApp\src\test\resources</directory>
            </testResource>
        </testResources>
        <directory>C:\Users\musaddique\workspace\XertoPublicApp\target</directory>
        <finalName>XertoPublicApp-0.0.1-SNAPSHOT</finalName>

        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <executions>
                    <execution>
                        <id>default-compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <configuration>
                            <source>1.7</source>
                            <target>1.7</target>
                        </configuration>
                    </execution>
                    <execution>
                        <id>default-testCompile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                        <configuration>
                            <source>1.7</source>
                            <target>1.7</target>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>           
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>default-war</id>
                        <phase>package</phase>
                        <goals>
                            <goal>war</goal>
                        </goals>
                        <configuration>
                            <warSourceDirectory>WebContent</warSourceDirectory>
                            <failOnMissingWebXml>false</failOnMissingWebXml>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <warSourceDirectory>WebContent</warSourceDirectory>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>

        </plugins>
    </build>
    <reporting>
        <outputDirectory>C:\Users\musaddique\workspace\XertoPublicApp\target\site</outputDirectory>
    </reporting>
</project>

【问题讨论】:

  • 放入 pom 和项目结构将帮助其他人了解问题可能是什么
  • 另外你如何执行 maven ?如果你使用 maven-war 插件,它会创建一个战争。
  • 我要jar文件,包含所有类
  • 我也试过将 maven-jar 插件
  • 天哪,你的 POM 太糟糕了。请保持默认值,切勿覆盖&lt;sourceDirectory&gt;&lt;testSourceDirectory&gt; 等...!帮自己一个忙!

标签: java maven


【解决方案1】:

您正在使用 maven-war-plugin,这会导致输出战争。 如果你可以删除这个插件,你应该开始得到一个 jar。

【讨论】:

    【解决方案2】:

    删除 plugins 中创建 war 文件的 maven-war-plugin 并添加 maven-assembly-plugindescriptorRef jar-with-dependencies 如果您需要所有依赖类。

              <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.6</version>
                    <configuration>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </plugin>
    

    【讨论】:

      【解决方案3】:

      只需从你的 pom.xml 中删除 maven-war-plugin

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-07
        • 2016-08-28
        • 2014-07-02
        • 2013-12-22
        • 2015-02-06
        • 2018-11-06
        相关资源
        最近更新 更多