当我尝试在pom.xml中指定清单时,获取格式错误的POM

时间:2019-04-24 06:37:45

标签: java maven pom.xml manifest.mf

我将应用程序打包为

df = pd.DataFrame([
    {'id': 'A', 'value': 200},
    {'id': 'B', 'value': 5},
    {'id': 'A', 'value': 200},
])

# This doesn't modify df
df.loc[df['id'] == 'A', 'value'].replace({200:300}, inplace=True)

# This doesn't modify df
df.loc[df['id'] == 'A', 'value'].drop(0, inplace=True)

# This does modify df
df.loc[df['id'] == 'A', 'value'] = 400

它将创建一个名为mvn package 的{​​{1}}文件

当我尝试以以下方式运行jar文件时:

jar

我收到一个错误,说JasperCSVDataSource-1.0-SNAPSHOT.jar。为了在创建的java -jar JasperCSVDataSource-1.0-SNAPSHOT.jar 中自动添加清单文件,我通过添加以下内容来更新了no main manifest attribute, in target/JasperCSVDataSource-1.0-SNAPSHOT.jar

JAR

完整的pom.xml如下所示:

<configuration>
  <archive>
    <manifest>
    <mainClass>com.comp.main.CommandLineRunner</mainClass>
    </manifest>
  </archive>
</configuration>

但是现在当我尝试构建文件时,出现错误消息:

pom.xml

我不明白原因。这不是将清单文件添加到jar的正确方法吗?

1 个答案:

答案 0 :(得分:0)

您需要为<configuration>标签提供特定的Maven插件。在这种情况下,它可能是maven-jar-plugin 因此,您的pom.xml标签应该在<project>标签内

<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    ...
    <configuration>
      <archive>
        <manifest>
          <mainClass>com.comp.main.CommandLineRunner</mainClass>
        </manifest>
      </archive>
    </configuration>
    ...
  </plugin>
</plugins>
</build>