我想创建一个模型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. 可执行JAR文件也包含源代码
- 2. JAR不包含根文件
- 3. 在JAR中打包Facelets文件(模板,包含,合成)
- 4. 将外部项目文件打包为资源jar(SBT)
- 5. 在胖JAR中包含源码
- 6. 为什么sun jdk源代码不包含javax.servlet包?
- 7. 用于构建模块的Cmake(文件夹包含源代码)
- 8. 从包含/ debian文件夹的源代码构建Debian包
- 9. 无法构建NuGet包...包含源代码和符号文件
- 10. 资源文件但不包含文化代码
- 11. 如何使用Maven将GWT模块打包为Jar文件?
- 12. C++ Builder:包含JAR文件
- 13. Python - 打包源代码
- 14. 打开Elixir源代码包?
- 15. 为什么maven不在我的jar包中包含JSP文件?
- 16. VS代码“在包含路径中找不到包含文件”。
- 17. 探索包含文件夹而不是打开包含文件夹
- 18. 包括包含.jar文件编译
- 19. eclipse:在jar包中包含abitrary文件
- 20. 打包Java应用程序时,jar文件中不包含属性文件
- 21. 如何编译包含C源文件的C++源代码?
- 22. clojure-1.6.0.jar是否包含源代码和/或JavaDoc?
- 23. 如何在Maven build war中包含jar源代码
- 24. 如何在分布式jar文件中包含资源文件?
- 25. 在Eclipse上使用仅包含Java源文件的JAR文件
- 26. 源附件不包含该文件Layoutinflater.class
- 27. 生成包含调试源代码的软件包
- 28. 将资源包含到EXE文件中
- 29. 如何在头文件中包含依赖项而不将其包含在包含头文件的项目中
- 30. Java包Jar包含文本文件和文件夹