伙计们,
我正在尝试使用Ant和终端上的Javac Cross编译.在本地和集成环境中,我在最基本的问题上遇到了同样的问题.
我在linux终端中运行它(以及在windows和cmd上的cygwin上):
javac -target 1.6 -source 1.7 -bootclasspath /usr/java/jdk1.6.0_27/jre/lib/rt.jar Main.java
Run Code Online (Sandbox Code Playgroud)
与Main.java只有System.out.println.
javac -version ==> javac 1.7.0_11
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
javac: source release 1.7 requires target release 1.7
Run Code Online (Sandbox Code Playgroud)
我在本地Windows机器上具有大致相同的配置,结果完全相同.
我的理解是,交叉编译的全部内容是编译一些与更高版本的jdk兼容的源代码,使用更高版本的jdk,但是传递的目标版本的rt.jar应该更低.
如果目标和来源相同,那就有效了.
target=1.7 and source=1.7 workd fine
target=1.6 and source=1.6 worked just fine
Run Code Online (Sandbox Code Playgroud)
但我想要交叉编译,那么我做错了什么呢?
我很感激能得到的所有帮助,并提前感谢.
我想我不需要问这个,但我没有任何进展.
这个问题的解决方案: 常春藤的maven范围如何映射到常春藤配置实际上解决了问题,但在理论部分.
我有这个配置:
<conf name="compile" description="???" />
<conf name="runtime" description="???" extends="compile" />
<conf name="test" description="???" extends="runtime" />
<conf name="provided" description="???" />
Run Code Online (Sandbox Code Playgroud)
假设我有这种依赖:
<dependency org="org.apache.tomcat" name="servlet-api" rev="6.0.16" transitive="false" />
Run Code Online (Sandbox Code Playgroud)
我想要的是:当我调用常春藤:在捆绑它之前检索将库复制到.war lib目录,我只想复制所有运行时(并隐式编译)但没有servlet-api.
那么如何使用常春藤:然后检索?
<ivy:retrieve conf="WHAT_TO_PUT_HERE" />
Run Code Online (Sandbox Code Playgroud)
以及如何配置依赖项:
<dependency conf="WHAT_IS_THE_CONF_MAPPING" org="org.apache.tomcat" name="servlet-api" rev="6.0.16" transitive="false" />
Run Code Online (Sandbox Code Playgroud)
我在这里稳定,所以请任何帮助将不胜感激.
知道servlet-api的ivy.xml定义了工件
conf="master"
Run Code Online (Sandbox Code Playgroud)
所以我认为问题是如何'真正'映射提供的maven范围到提供的IVY配置.
我目前在公司的任务是实施IVY依赖管理.现在我点击了以下通常的Maven存储库中找不到的库,例如http://mvnrepository.com:
com.ibm.mq.jar
com.ibm.mq.pcf.jar ...
等等(它们都带有前缀:com.ibm.mq).
我可以在一个单独的网站上找到它们:http://www.java2s.com/ 但它不兼容Maven.
那么,我在哪里可以找到那些?解决这个问题的最佳解决方案是什么?
我在想,将它们手动上传到团队联系人.但在这种情况下这是通常的程序吗?
非常感谢提前.