【问题标题】:Maven: Compiling package-info.java to package-info.class?Maven:将 package-info.java 编译为 package-info.class?
【发布时间】:2011-10-09 20:55:28
【问题描述】:

我的包中有 package-info.java,Hibernate 想要它用于某些功能(程序实体扫描)。

但是,mvn package 不会导致 package-info.classclasses/ 中,因此不在工件中。

我怎样才能强迫这种情况发生?

mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_26
Java home: /usr/lib/jvm/java-6-sun-1.6.0.26/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.35-30-generic" arch: "amd64" Family: "unix"

【问题讨论】:

  • 哪个版本的maven编译器插件?你能打jira.codehaus.org/browse/MCOMPILER-71吗?您也可以发布相关的 pom sn-p
  • Raghuram,很好,但具有讽刺意味的是,当我添加注释时,它开始工作 :)Compiler plugin 2.3.2, source & target = 1.6

标签: java maven-2 compilation package


【解决方案1】:

在 Maven 3 中正常工作;不知道 2. 是不是package-info.java中的包声明丢失或错误?

【讨论】:

  • 你能描述一下你所说的“正常工作”是什么意思吗,因为我尝试过并且 maven 3.6.0 没有在我所在的位置生成 package-info.class 文件:/
【解决方案2】:

错误是 package-info.java 必须有任何带有 Retention=RUNTIME 的注解才能编译成一个类。否则,JDK 6 会忽略它。
我使用了 @Deprecated,它是 Java SE 中唯一的一个(因此我不想引入注解)。

@Deprecated
package cz.zizka.ondra.packageinfo.test

【讨论】:

  • 您应该为此目的引入额外的注释。
【解决方案3】:

给 javac 提供-Xpkginfo:always 选项。

请参阅javac documentation

【讨论】:

  • 感谢添加。它当时不可用 - 在 JDK 7 中添加。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 2014-04-01
  • 2021-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-11
相关资源
最近更新 更多