Tag: build

如何在我的Ant构建脚本中运行JUnit测试,同时从生成的jar中省略测试类?

我正在使用Ant手册中的Hello World with Ant教程来了解Ant。 本教程的最后一部分涉及将JUnit测试添加到项目中。 我已按照教程中的描述完成所有工作,现在我正在进行一些小的更改。 我想做的一个改变是在典型的构建期间运行测试,但没有* Test.class文件最终在应用程序的最终.jar文件中。 这是因为我将要开发的最终项目将用于硬盘空间有限的设备,并且仅支持Java SDK的一个子集,因此我更愿意完全从jar中省略这些测试文件。 我该怎么做呢? 创建两个独立的jar子很容易,一个用于测试,一个用于部署,但这似乎不太理想。 我当前的build.xml文件如下。 我尝试过的一件事是修改jar命令以排除* Test.class文件 … … 哪个成功排除了测试类,但是当测试通过junit目标运行时,当使用-v运行时,它会失败并显示以下堆栈跟踪: [LocalPath]\build.xml:44: Test HelloWorldTest failed at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.actOnTestResult(JUnitTask.java:1863) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:814) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1808) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:760) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:390) at org.apache.tools.ant.Target.performTasks(Target.java:411) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397) at org.apache.tools.ant.Project.executeTarget(Project.java:1366) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1249) […]

如何防止Eclipse为每个构建清理bin文件夹?

我现在正在使用Eclipse进行项目,并且我在bin文件夹中保存了一些资源文件(例如,图像,文本),并且程序需要这些文件。 但是,对于每个构建,Eclipse都会尝试清理该文件夹,然后重建项目。 清理时,它会删除文件夹中的资源文件。 反正有没有阻止Eclipse这样做? 我知道我可以更改文件的位置,但我也很好奇为什么Eclipse会这样做,并且可以防止这种情况发生。 谢谢!

Maven中的Java版本不匹配

在尝试使用Maven 在命令行上构建我的应用程序时,我遇到了一个奇怪的问题。 (我在SO上看到的其他问题是指在Eclipse或其他IDE中构建) 当我尝试构建时,maven抱怨它无法在tools.jar中找到Javac。 看看给定的位置,显然Maven正在查看JRE目录,但是,我似乎无法让Maven指向我JDK的正确Java_home – 关于如何做到这一点的任何想法? 环境概述 JAVA_HOME=C:\jdk1.6.0_27 Path=C:\jdk1.6.0_27\bin;…… (showing the jdk is the first thing on the path) D:\> javac -version javac 1.6.0_27 java -version java version “1.6.0_31” mvn -version Apache Maven 2.2.1 (r801777; 2009-08-07 03:16:01+0800) Java version: 1.6.0_31 <— This is the problem – Where Java home: C:\Program Files (x86)\Java\jre6 <— does […]

JAVAFx构建失败

我使用JavaFx for windows创建了一个应用程序,这非常酷。 我可以从e(fx)clipse运行它,everthing工作正常,但我不能从项目中制作一个jar文件。 我可以导出它(右击 – >导出 – >可运行的Jar文件)。 但是,如果我在MAC OS X上运行jar,在菜单栏中我得到“java”menuitem而不是我的应用程序名称,我真的不喜欢。 我搜索了如何隐藏该menuitem,或者只是重命名它,我发现我必须在build.fxbuild文件中重命名“Application title *”。 现在我无法建立它。 所以这就是我真正想要的:在Mac OS X中删除/隐藏/重命名“java”menuitem。如果您有任何经验,请与我分享。 我将非常感激:)。 我尝试运行build.xml文件时收到以下错误: [javac] Compiling 22 source files to C:\Users\Hassan\Desktop\Programming\workspace\Raktar_vevo 2.7\build\classes [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.7 [javac] Note: C:\Users\Hassan\Desktop\Programming\workspace\Raktar_vevo 2.7\build\src\application\SajátKészlet.java uses unchecked or unsafe operations. [javac] Note: Recompile with […]

使maven在构建jar中复制其他文件(不是资源,而是任何包内的任何文件)?

我有一个带有一些ruby文件(* .rb)的org.myapp.mypackage包,我需要将它们与java类文件一起包含在同一个包中生成的构建jar 中 。 我怎么告诉我的朋友Maven这样做? OBS:不,我不能复制到其他任何地方,但感谢您的建议。 🙂

在执行期间加载资源的问题

这是潜在问题的背景,我正在与一个使用Swt库的项目小组合作,我正在尝试打包软件进行部署。 事实certificate, SWT非常依赖于平台/架构。 我希望能够将所有六个jar (linux,mac,win和32/64位)打包到同一个包中,并根据系统使用相应的库。 我意识到这是一个艰难的挑战,但转换到Swing (或其他任何东西)现在并不是一个真正的选择。 我找到了许多相关主题( @Aaron Digulla的主题和@ mchr的主题 ),它为我提供了有关手头问题的宝贵见解。 我试图在这里实现@Alexey Romanov提出的解决方案。 有一点不同,因为他提出的loadSwtJar()方法不是静态的,我实例化对象,然后紧接着,在对对象做任何其他事情之前运行该方法。 看起来装载过程无法正常工作。 我对此声明的推理如下: 如果从可执行jar文件的类路径中删除所有Swt jar,则Exception in thread “main” java.lang.NoClassDefFoundError: org/eclipse/swt/events/MouseListener ,它由以下原因引起: java.lang.ClassNotFoundException: org.eclipse.swt.events.MouseListener 对我来说,这意味着在类路径中找不到库,我错了吗? 如果swt jar留在类路径上,则系统在执行期间使用第一个jar文件。 这意味着如果gtk-linux-x86_64恰好是jar列表中的第一个swt jar,那么无论系统是win32还是Mac OSX,系统都会尝试使用它。 我试图添加一些输出来查看loadSwtJar()方法是否正在选择正确的jar,并且输出似乎在我尝试的所有平台上都正确,因为在右侧包中选择了(并且文件确实存在于runnable jar中) )。 但是仍然没有加载正确的库因此会发生执行错误:由ex Caused by: java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM Exception in thread “main” java.lang.reflect.InvocationTargetException : Caused […]

访问被拒绝的Maven,http://repo1.maven.org/maven2

我刚刚下载了Maven的最新版本。 而当我想跑 mvn archetype:generate 我收到错误消息 [警告]读取原型目录时出错http://repo1.maven.org/maven2 org.apache.maven.wagon.authorization.AuthorizationException:访问被拒绝: http: //repo1.maven.org/maven2,De reasonPhrase:拒绝访问。 org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:928)org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:116)at org.apache.maven.wagon位于org.apache.maven.archetype.source的org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61)的.StreamWagon.getIfNewer(StreamWagon.java:88).RemoteCatalogArchetypeDataSource.downloadCatalog(RemoteCatalogArchetypeDataSource.java:119 )org.apache.mache.mache.z上的org.apache.maven.archetype.source.RemoteCatalogArchetypeDataSource.getArchetypeCatalog(RemoteCatalogArchetypeDataSource.java:87)org.apache.maven.archetype.DefaultArchetypeManager.getRemoteCatalog(DefaultArchetypeManager.java:216)。位于org.apache.maven.archetype.ui.generation.DefaultArchetypeSelector.selectArchetyp的org.apache.maven.archetype.ui.generation.DefaultArchetypeSelector.getArchetypesByCatalog(DefaultArchetypeSelector.java:200)的DefaultArchetypeManager.getRemoteCatalog(DefaultArchetypeManager.java:205) e(DefaultArchetypeSelector.java:71)org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:197)org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)at org位于org.apache.maven.lifecycle.internal的org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)的.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) .jojoExecutor.execute(MojoExecutor.java:145)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java) :59)在org.apache的org.apache.maven.life.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)。 org.apache.maven.Defa上的maven.DefaultMaven.doExecute(DefaultMaven.java:320) org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)的ultMaven.execute(DefaultMaven.java:156)org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)org .apache.maven.cli.MavenCli.main(MavenCli.java:141)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(来自org.codehaus.plexus.classworlds.launcher.Launcher的org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)的java.lang.reflect.Method.invoke(未知来源)的未知来源.launch(Launcher.java:230)org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) )[警告]在远程目录中找不到原型。 默认为内部目录[INFO]未定义原型。 使用maven-archetype-quickstart(org.apache.maven.archetypes:maven-archetype-quickstart:1.0) 我没有代理和互联网工作正常。 防火墙已关闭。 如何解决这个问题呢 ? 谢谢你的帮助。 如果我们查看类org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon方法fillInputData(InputData inputData),我们可以看到: public void fillInputData( InputData inputData ) throws TransferFailedException, ResourceDoesNotExistException,AuthorizationException { …. HttpResponse response; …. statusCode = response.getStatusLine().getStatusCode(); …. switch ( […]

使用Apache Ivy的自定义存储库,找不到解析器

似乎Apache ivy仅从http://mvnrepository.com/和其他几个地方下载工件,但所有的jar都在那里过时了。 所以我想为Ivy添加自定义存储库。 我正在使用存储库Ivy RoundUp: http : //code.google.com/p/ivyroundup/ 这是我的配置,但收到错误: build.xml文件: ivy.xml: master”/> ivysettings.xml: 错误: Buildfile: C:\Users\Jansu\workspace\HibernateSpring\build.xml build: deploywar: [war] Building war: C:\Users\Jansu\workspace\HibernateSpring\hibernate.war [copy] Copying 1 file to C:\apache-tomcat-7.0.20\webapps download-ivy: [get] Getting: http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.2.0/ivy-2.2.0.jar [get] To: C:\Users\Jansu\.ant\lib\ivy-2.2.0.jar [get] Not modified – so not downloaded init-ivy: update: [ivy:retrieve] :: Ivy 2.2.0 – 20100923230623 :: http://ant.apache.org/ivy/ :: [ivy:retrieve] :: […]

如何解决模块X的多个工件被检索到Apache Ivy中的同一文件?

我使用ANT将我的东西部署到Tomcat。 但我错过了依赖关系,我想添加Ivy,因为它被推荐了。 现在我将它添加到我的build.xml文件中: 这是我的ivy.xml: 这是我的日志: Buildfile: C:\Users\Jansu\workspace\HelloWorld\build.xml download-ivy: [get] Getting: http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.2.0/ivy-2.2.0.jar [get] To: C:\Users\Jansu\.ant\lib\ivy-2.2.0.jar [get] Not modified – so not downloaded init-ivy: update: [ivy:retrieve] :: Ivy 2.2.0 – 20100923230623 :: http://ant.apache.org/ivy/ :: [ivy:retrieve] :: loading settings :: url = jar:file:/C:/Users/Jansu/.ant/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings.xml [ivy:retrieve] :: resolving dependencies :: org.apache#hello-ivy;working@Jansu-PC [ivy:retrieve] confs: [default] [ivy:retrieve] found commons-lang#commons-lang;2.1 in public [ivy:retrieve] […]

Maven编译错误

当我在Netbeans中构建和运行我的程序时,它没有问题。 但是当我尝试“mvn compile”时使用相同的pom.xml文件,我收到此错误: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project hadoop-test: Compilation failure [ERROR] /home/metin/NetBeansProjects/hadoop-test/src/main/java/com/citusdata/hadoop/HadoopTest.java:[53,8] error: generics are not supported in -source 1.3 我的java版本不是1.3,这里是“mvn -version”的结果 Apache Maven 3.0.4 Maven home: /usr/share/maven Java version: 1.7.0_03, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre Default locale: en_US, platform encoding: UTF-8 OS name: “linux”, version: “3.2.0-27-generic”, arch: “amd64”, […]