我剛剛將一個項目從ant轉換爲maven,並且得到一個錯誤,構建一個jar,其行爲與源文件沒有按照正確的順序編譯相同。我有一個枚舉類型,看起來像這樣:maven似乎沒有按順序編譯 - 找不到符號
public enum LmsError implements ILmsError {
UC0001() {
@Override
public String msg() {
return this.getClass().getName() + "-" + this + ": constructor failed: ";
}
},
界面看起來是這樣的:
public interface ILmsError {
public abstract String msg();
}
...這是使用它的代碼的例子。 'throws'這一行是下面的錯誤信息所抱怨的內容,但是如果我註釋掉這個語句,下一次引用msg()方法時它會得到類似的錯誤。使用枚舉的哪個元素無關緊要。
} catch (Exception e) {
throw new RuntimeException(LmsError.UC0001.msg() + "Unable to construct status based on " + codeEnumeration + ":" + e.getMessage(), e);
}
MVN清潔編譯
[compiler:compile]
Compiling 129 source files to C:\bsaastad\workspaces\theportaltree\redirect\redirect-ejb\target\classes
-------------------------------------------------------------
COMPILATION ERROR :
-------------------------------------------------------------
com/theportaltree/redirect/status/RedirectStatus.java:[156,58] cannot find symbol
symbol : method msg()
location: class com.theportaltree.lms.LmsError
1 error
如果我重新編譯不乾淨,我得到類似這樣的(有時需要兩個額外的編譯過的所有文件獲得)的東西:
[compiler:compile]
Compiling 89 source files to C:\bsaastad\workspaces\theportaltree\redirect\redirect-ejb\target\classes
[resources:testResources]
乾淨的編譯。
如果我看失敗後的輸出目錄,我看到沒有生成的枚舉類存在,這就解釋了錯誤。只要我獲得了成功的編譯,枚舉類就像預期的那樣。
這是所有在同一個項目,所以我不認爲這是一個依賴性問題。我只是將它從一個ant構建轉換爲maven(maven newbie),幾年來它一直在編譯而沒有問題。這是pom.xml中的插件部分。有什麼遺漏嗎?錯誤版本的東西?我很難過:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<!-- put your configurations here -->
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.3</version>
<configuration>
<ejbVersion>3.1</ejbVersion>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8.1</version>
<configuration>
<!-- javadoc configuration options here -->
</configuration>
</plugin>
</plugins>
</build>
任何幫助/想法將不勝感激。
你可以發佈你所有的構建部分? – scarcer