Tag: 依赖

“无效的签名文件摘要”错误通过Maven添加Janino包

我正在尝试通过Maven存储库向Janino 2.7.6添加依赖项。 当我尝试运行该应用程序时,我收到此错误: — exec-maven-plugin:1.2.1:exec (unpack-dependencies) @ JanineAttemp2 — — exec-maven-plugin:1.2.1:exec (default-cli) @ JanineAttemp2 — java.lang.SecurityException: Invalid signature file digest for Manifest main attributes at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:284) at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:238) at java.util.jar.JarVerifier.processEntry(JarVerifier.java:273) at java.util.jar.JarVerifier.update(JarVerifier.java:228) at java.util.jar.JarFile.initializeVerifier(JarFile.java:383) at java.util.jar.JarFile.getInputStream(JarFile.java:450) at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:776) at sun.misc.Resource.cachedInputStream(Resource.java:77) at sun.misc.Resource.getByteBuffer(Resource.java:160) at java.net.URLClassLoader.defineClass(URLClassLoader.java:442) at java.net.URLClassLoader.access$100(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:367) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:360) […]

有关serviceloader的Java 9依赖性问题

基于这种情况,我有一个关于serviceloader如何在Java 9中发生变化的问题 脚本 项目gert Class Main package gert; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.nio.charset.StandardCharsets; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; public class Main { static public void test() throws JAXBException { InputStream is = new ByteArrayInputStream(“”.getBytes(StandardCharsets.UTF_8)); JAXBContext jaxbContext = JAXBContext.newInstance(ClassesDef.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); unmarshaller.unmarshal(is); } } Project gert Class ClassesDef package gert; import javax.xml.bind.annotation.XmlAttribute; […]

在java中处理外部库的正确方法(使用eclipse)

这在某种程度上是对我过去几周飙升的一个以前未解答的问题( 链接 )的跟进,现在它已经到了我不能再发展的地步…… 所以这是交易; 我有比纯CS更多的数学/工程背景,所以我在正确/大规模软件开发方面没有太多经验,而是脚本和算法。 既然我正在研究一个大型项目,我自己就会对开发的某些方面感到困惑。 其中一个是处理库/依赖项 我最初在我的项目文件夹(在Eclipse工作区中)创建了一个名为lib文件夹,并在那里复制了我的外部库,然后将它们添加到构建路径中。 但是后来我需要其他一些东西,比如JCommons , JFreeChart , Apache Commons Math等。根据说明,这些库可以/应该作为用户库包含在内,允许开发人员从IDE中查看文档和源代码(例如Eclipse) )。 到目前为止我已经把它弄好了,我希望…… 那问题出在哪里? 首先,它出现了,因为上面提到的用户库没有包含在项目的SVN副本中,这意味着想要测试我的项目的同事不能这样做,只需从SVN获取项目。 现在,当我在工作中更改工作站时问题的第二阶段没有表面,我想从备份中将项目导入Eclipse,但是除了那些用户库之外的所有内容都在那里。 为了使事情变得更复杂,当这个软件完成后,它将在服务器上实现,因此如果所有内容都可以打包到一个单独的库或更好的可运行jar文件中,那将是绝对最好的。 我之前被建议看看Maven,或者Ivy,但是在检查它们之后我的初步了解是它们从一开始就被使用,主要用于更复杂的项目。 老实说,我完全不知道我应该如何管理我的依赖项。 有任何想法吗? (抱歉让它保持很长时间,但我认为更完整,而且信息不充分) 编辑:我设法解决了问题; 问题显然源于eclipse不会将所有资源复制到一个地方的简单事实,而某些库的安装说明并没有真正警告您如何以最佳方式管理库。 感谢大家,他们花时间尝试帮助我。 我会及时看看像Maven和Ivy这样的项目,这绝对是有趣的东西。 但是现在我只需要回到运行状态的软件,长时间摔跤新东西.. 🙂

Maven项目依赖于JDK版本

我有需要使用特定版本的JDK构建的项目。 问题不在源和目标参数中,而是在编译期间使用的运行时的jar中。 在某些情况下,如果我尝试使用错误的JDK进行编译,则会出现编译错误,但有时构建成功并且在使用jar时会出现运行时错误。 例如,在eclipse中,我能够在.classpath文件中为项目建立执行环境。 有没有办法在maven中处理这种情况? 我想要的是像POM文件中的项目的其他依赖项一样处理JRE依赖的能力。 更新: 当我问这个问题时,接受的解决方案是最好的,所以我不会改变它。 同时引入了这种问题的新解决方案: Maven Toolchain 。 请点击链接了解更多详情。

为什么Java禁止inheritance内部接口?

即为什么以下“循环依赖”不可能? public class Something implements Behavior { public interface Behavior { // … } } 由于接口不引用外部类,因此应该允许; 但是,编译器迫使我在类外定义那些接口。 这种行为有合理的解释吗?

如何使用maven在MANIFEST.MF中为JBoss AS 7生成模块依赖项?

在JBoss AS 7中,依赖于AS中包含的库的Web应用程序必须在META-INF / MANIFEST.MF中声明这些依赖关系,如下所示: Dependencies: 例: Dependencies: org.slf4j (这与Import-Package:for OSGi相当。)有关从旧版本迁移 , 类加载和部署的隐式模块依赖关系的文章中可以找到更多信息。 该项目是用Maven构建的。 AS中包含的所有依赖项都使用范围“提供”声明。 现在的问题 有没有一种简单的方法可以使用Maven自动创建这个依赖项列表? 只应包含声明范围“已提供”的依赖项,因为所有其他依赖项已包含在WAR中。

查找Java类中的所有依赖项

我试图获取Java类中的所有依赖项,包括用于generics参数化和局部变量类型的类。 到目前为止,我发现最好的框架是apache bcel 。 使用它我可以很容易地从字节代码中找到所有字段,方法参数和局部变量。 基本上除了generics和局部变量类型之外的所有东西。 例如,从行List points = new ArrayList(); 我只能使用bcel中的JavaClass.getConstantPool()方法找到一个依赖项 – ArrayList。 它既不能检测List接口也不能检测Point类。 我也尝试了tattletale和CDA,遗憾的是没有成功(相同的结果)。 检查导入是不够的 – 我还需要来自同一个包的依赖项,我不能接受通配符。 我将不胜感激任何帮助。

最小化jar依赖项大小

我写的一个应用程序使用了几个第三方jar子。 有时只使用整个50kB到1.7mB jar的一小部分 – 一个或两个函数调用或类。 什么是减少jar子大小的最佳方法。 我应该下载源代码并构建一个只需要我需要的类的jar吗? 哪些现有工具可以帮助实现此function(例如,我简要介绍了http://code.google.com/p/jarjar/ )? 谢谢 编辑1:我想降低我的第三方’官方’jar子的大小,如swingx-1.6.jar(1.4 MB),set-3.6(1.7 MB)glazedlists-1.8.jar(820kB)等等,这样他们就可以了只包含我需要的最低级别 编辑2:如果库使用reflection,手动或使用程序如proguard最小化jar会更复杂。 在使用proguard进行模糊处理后,使用google guice注入不再有效 cletus对另一篇文章的回答非常好如何确定Java程序使用哪些类?

在maven项目中解析多个SLF4J绑定

这个问题在SE网站上听起来像一堆类似的问题 ,所以我应该非常详细地提出我的问题。 所以,这是项目的最小pom.xml : ch.qos.logback logback-classic 1.0.6 org.codehaus.gmaven.runtime gmaven-runtime-1.7 1.3 org.codehaus.mojo exec-maven-plugin 1.2.1 org.shabunc.App 这是maven生成的依赖树。 mvn dependency:tree -Dverbose -Dincludes=org.slf4j : [INFO] [dependency:tree {execution: default-cli}] [INFO] org.shabunc:logdebug:jar:1.0-SNAPSHOT [INFO] \- ch.qos.logback:logback-classic:jar:1.0.6:compile [INFO] \- org.slf4j:slf4j-api:jar:1.6.5:compile 现在,让我们删除排除并再次检查依赖项。 我们会得到: [INFO] org.shabunc:logdebug:jar:1.0-SNAPSHOT [INFO] +- ch.qos.logback:logback-classic:jar:1.0.6:compile [INFO] | \- org.slf4j:slf4j-api:jar:1.6.5:compile [INFO] \- org.codehaus.gmaven.runtime:gmaven-runtime-1.7:jar:1.3:compile [INFO] +- (org.slf4j:slf4j-api:jar:1.5.10:compile – omitted for conflict with 1.6.5) […]

Maven:javaee-api vs jboss-javaee-6.0

我想要一个用maven构建的Java JEE6项目,我希望它是标准的 所以,我把它放在我的pom.xml中: javax javaee-api 6.0 provided 像这样的项目,应该在兼容的每个JEE6容器中运行(jboss,geronimo,glashfish等) 那么,为什么这个jboss依赖存在? org.jboss.spec jboss-javaee-6.0 3.0.2.Final provided 如果我使用它,我是否绑定到jboss所以我只能在这个应用程序中使用此服务器? 总是使用标准的javaee-api不是更好吗? 谢谢!