我想創建一個模型jar文件,但不包括源代碼。可能嗎? Repast模型安裝程序默認包含源代碼,但我希望將其隱藏到模型的收件人中。將Repast模型打包爲jar文件而不包含源代碼?
回答
是的,這是可能的,但有一個重要的警告。編譯的Java代碼以二進制文件的形式發佈,比如罐子,可以非常精確地重新編譯回原始源代碼。如果你的目標是保護專有源代碼則需要代碼混淆 - 見https://www.excelsior-usa.com/articles/java-obfuscators.html瞭解更多詳情。代碼混淆不幸是一個相當複雜的主題。
有兩種方法從就餐模型安裝程序省略項目源代碼:
方法1 - 刪除/從模式安裝配置文件的src元素。這將指示模型安裝程序在安裝程序jar中省略/ src文件。編譯的代理類將位於通常的項目/ bin文件夾中。
在/installer/installation_compnents.xml文件,圍繞線156評論如下:
<!--
<pack name="Sources" required="no">
<description>The model source code</description>
<file src="$StagingOptionalArea/src" targetdir="$INSTALL_PATH/Geography"/>
</pack>
-->
的「」表示該被註釋的代碼塊的開始和結束。接下來,在/installer/installation_coordinator.xml文件,圍繞第62行註釋:
<!-- Copy optional files to a separate directory -->
<copy todir="${StagingOptionalArea}" overwrite="true" failonerror="false">
<fileset dir="." casesensitive="no">
<!-- <include name="**/src/**" /> -->
<include name="**/docs/**" />
</fileset>
</copy>
在這裏,你不僅要評論的單行拷貝/ src文件夾,而不是/ docs文件夾(雖然你可以,如果你喜歡)。現在只需像往常一樣構建模型安裝程序。
方法2 - 的/ src文件夾導出到一個jar文件。與第一種方法相同,此方法不需要對默認安裝程序文件進行任何更改。然而,它需要將其導出到一個JAR文件,這意味着你將需要在項目的副本來保留你的源代碼後刪除源代碼。要將模型代碼導出到JAR文件,請右鍵單擊/ src文件夾並選擇導出... - > Java - > JAR文件。在導出對話框中,確保src文件夾在選中「選擇資源導出」框,然後指定JAR文件的名稱和位置。將jar文件導出到項目/ lib文件夾中的最佳位置。大多數其他選項應該保留爲默認值。確保「導出Java源文件和資源」未被選中,否則它會將源文件複製到jar文件中。生成JAR文件並驗證它存在於/ lib文件夾中後,刪除/ src文件夾的內容,但不刪除/ src文件夾本身。這將永久刪除模型源代碼,所以如果您採用此路線,請再次製作項目副本。只需重命名或刪除/ src文件夾將導致安裝程序失敗,因此該方法需要刪除。最後,需要更新.rs文件夾中的user_path.xml文件以反映源代碼位置中的更改。將行更改爲假定導出的模型JAR文件位於/ lib文件夾中。所有的模型代碼現在位於項目/ lib文件夾中的單個JAR文件中。此時/ src和/ bin文件夾應該是空的。照常構建模型安裝程序。安裝源代碼的選項仍將出現在安裝程序中,但安裝程序JAR中不包含任何源代碼,因此在安裝時不會複製源代碼。
- 1. 將android代碼打包成jar文件
- 2. 可執行JAR文件也包含源代碼
- 3. 在JAR文件中包含源代碼有什麼缺點?
- 4. JAR不包含根文件
- 5. 在JAR中打包Facelets文件(模板,包含,合成)
- 6. TFSBuild 2010包僅包含源代碼 - 不包含二進制文件
- 7. Eclipse:在導出爲可運行jar時包含源代碼
- 8. 將外部項目文件打包爲資源jar(SBT)
- 9. 在胖JAR中包含源碼
- 10. 用於構建模塊的Cmake(文件夾包含源代碼)
- 11. 爲什麼sun jdk源代碼不包含javax.servlet包?
- 12. 無法構建NuGet包...包含源代碼和符號文件
- 13. 從包含/ debian文件夾的源代碼構建Debian包
- 14. 資源文件但不包含文化代碼
- 15. 如何將cassandra源代碼打包到debian軟件包中?
- 16. 如何使用Maven將GWT模塊打包爲Jar文件?
- 17. Hadoop 2.2.0源代碼打包
- 18. Python - 打包源代碼
- 19. 打開Elixir源代碼包?
- 20. C++ Builder:包含JAR文件
- 21. VS代碼「在包含路徑中找不到包含文件」。
- 22. 爲什麼maven不在我的jar包中包含JSP文件?
- 23. 源附件不包含源文件Collections.class?
- 24. 創建一個包含編譯類和javadoc而不包含Maven的jar文件
- 25. Maven:將資源包含到JAR中
- 26. 探索包含文件夾而不是打開包含文件夾
- 27. 包括包含.jar文件編譯
- 28. eclipse:在jar包中包含abitrary文件
- 29. 打包Java應用程序時,jar文件中不包含屬性文件
- 30. 在appclient jar中包含模型庫