2011-06-16 72 views
2

目前,我正在嘗試在我的項目中使用Jazzy拼寫檢查庫。但是,我偶然發現了一些奇怪的例外。簡而言之,很明顯,Maven回購中的Jazzy軟件包被刪除了屬性文件,這可能是不必要的(看起來像,庫即使沒有它也可以運行),但是在使用該程序時,它會在控制檯中留下異常消息。Maven的回購包中缺少文件

那麼,有沒有簡單的方法將* .properties文件複製到* .jar中Maven的確切位置,或者處理它的最佳方法是什麼?

[編輯] 沒有此文件,庫將不提供建議,只能表示的話,這是不是在字典

回答

1

下面是一個理論:Jazzy將屬性文件與java源文件一起存儲(Example)。這不是Maven處理東西的方式。 Maven認爲這些資源在src/main/resources之下。

所以我想無論誰做了Maven的端口忘了添加的src/main/java文件夾的資源文件夾(你需要的,如果你把資源沿java文件做):

<resources> 
    <resource> 
     <directory>src/main/java</directory> 
     <!-- or whatever the source dir is called --> 
     <excludes> 
      <exclude>**/*.java</exclude> 
     </excludes> 
    </resource> 
    <!-- also add src/main/resources if you need it --> 
</resources> 

所以我猜你最好的選擇是提交一個bug並要求他們包含這個配置。

0

如果記錄涉及你可以只禁用該記錄器。

+0

我想解決這個問題,不要忽略它 – 2011-06-16 21:03:31

+0

如果你真的想解決這個問題:Jazzy是開源的,對不對?提交問題/向開發者提供補丁/交談。 – Puce 2011-06-16 21:17:56

+0

@Puce這不是Jazzy問題,它是包被推送到Maven存儲庫的問題。 – 2011-06-16 21:24:25

1

那麼,有沒有簡單的方法將* .properties文件複製到* .jar中Maven的確切位置,或者處理它的最佳方法是什麼?

請記住,JAR文件只是具有不同擴展名的ZIP存檔文件。如果需要,可以「解壓縮」JAR並添加任何想要編程的文件,如屬性文件。然後你只需要將它全部拉回來,JAR應該按預期工作。

關於這個解決方案的一個棘手問題是,您正在使用Maven進行依賴關係管理,這會使您爲項目操作JAR變得棘手或困難。螞蟻本來就是你的朋友。

無論哪種方式,我不認爲這是最好的解決方案。另外我不喜歡批評Maven。 ;)

我認爲正確的做法是在您自己的項目中添加自己的whatever.properties文件。如果你在你的src/main/resources文件夾下的Jazzy庫所期望的完全相同的包結構下,它應該在運行時正確找到它。

所以,如果爵士保持的屬性在com.jazzy.props包文件,該文件放置在自己的項目是這樣的...

<project.root>/src/main/resources/com/jazzy/props/whatever.properties 

我並沒有想這個,但它應該在理論工作。祝你好運!

0

由於jazzy是開源的,它被分離幷包含在RText中,這是另一個開源項目。我碰巧需要RText(使用Ant構建)以用於另一個開源Maven項目(SQuirrel SQL Client),因此我將Sonatype應用於net.sf.jazzy groupId的許可。由於RText附帶的發行版有bug修復和其他mod,我們選擇使用「特殊的」versionId(0.5.2-rtext-1.4.1),它會(希望)表明這個版本不是「官方」版本0.5.2的爵士版本,而是隨RText版本1.4.1發佈的版本。不幸的是,當我準備初始版本時,我省略了資源(配置和翻譯屬性文件)。我通過發佈另一個版本來糾正這個問題,這裏有:http://repo1.maven.org/maven2/net/sf/jazzy/jazzy/0.5.2-rtext-1.4.1-2/