【问题标题】:Maven: JAR will be empty - no content was marked for inclusionMaven:JAR 将为空 - 没有内容被标记为包含
【发布时间】:2013-11-05 13:39:37
【问题描述】:

我对 maven 有一个小问题。当我运行命令 mvn package 时,我收到以下警告:

[警告] JAR 将为空 - 没有内容被标记为包含!

构建成功,但生成的 jar 文件为空,如警告所示。

为什么会这样,我做错了什么?

这是我的 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>framework</groupId>
<artifactId>framework</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>framework</name>
<url>http://maven.apache.org</url>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    My dependencies
</dependencies>

<build>
    <directory>target</directory>
    <outputDirectory>target/classes</outputDirectory>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <testOutputDirectory>target/test-classes</testOutputDirectory>
    <sourceDirectory>src</sourceDirectory>
    <scriptSourceDirectory>src</scriptSourceDirectory>
    <testSourceDirectory>src</testSourceDirectory>
    <testResources>
        <testResource>
            <directory>test</directory>
        </testResource>
    </testResources>

    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <includes>
                    <include>src</include>
                </includes>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <outputDirectory>lib</outputDirectory>
            </configuration>
        </plugin>

    </plugins>
</build>

【问题讨论】:

    标签: java maven jar


    【解决方案1】:

    我希望你有充分的理由关注standard directory layout,否则考虑重新排列文件夹:这会让你的生活更轻松(以及给你的同事)。 我的猜测是什么都没有编译。在这种情况下:删除 maven-compiler-plugin 的配置就足够了。

    【讨论】:

    • 您删除配置的建议有效。这是一个旧项目,我正在尝试将其转换为 maven 项目,这就是目录布局尚未遵循标准指南的原因。
    • 非常感谢!我的项目的目录布局不小心变成了非标准形式,直到看到你的答案我才注意到。当我修复布局时,问题就解决了。
    【解决方案2】:

    请试试这个:

    <build>
      <finalName>${project.artifactId}-${project.version}</finalName>
      <sourceDirectory>src</sourceDirectory>
      <testSourceDirectory>test</testSourceDirectory>
      <resources>
        <resource>
          <directory>src</directory>
          <excludes>
            <exclude>**/*.java</exclude>
          </excludes>
        </resource>
      </resources>
      <testResources>
        <testResource>
          <directory>test</directory>
          <excludes>
            <exclude>**/*.java</exclude>
          </excludes>
        </testResource>
      </testResources>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-plugin.version}</version>
          <configuration>
            <source>${maven.compiler.source}</source>
            <target>${maven.compiler.target}</target>
          </configuration>
        </plugin>
      </plugins>
    
    </build>
    

    如果您想转换现有的Eclipse Java Project,只需右键单击Java Project,然后单击Configure/Convert to Maven Project

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      相关资源
      最近更新 更多