Tag: build

Gradle Multiproject Build:如何在不创建伪项目的情况下将WAR项目的JAR包含到另一个WAR中

我有两个网络应用程序A和B B使用来自A部分代码。 如果我A声明为B的依赖关系,则A.war包含在A.war的WEB-INF/lib中 这种包含对容器毫无意义。 我看到的唯一解决方案是将A更改为Java项目(JAR)并创建名为A_WEB的虚拟Web项目(WAR)。 然后A声明为A_WEB和B依赖关系 然而,这将要求我干预项目结构。 选择gradle的一个重要原因是它承诺不会像maven那样使项目适应工具。 所以我希望有一种非常混乱的方法。

Gradle构建没有失败,DefaultFileLockManager获取并释放对守护程序地址注册表的锁定

我有几个基于gradle的项目,最近所有这些项目我都无法执行./gradlew清理构建。 在运行它时,当我使用–debug标志运行时,我卡在“>构建7%>:compileJava>解析依赖项”:compileClasspath’“并且它永远不会向前移动。 当我使用–debug标志运行时,我得到了关于DeafultFileLockManager获取和释放守护进程锁的输出,但这无济于事。 这是我看到的gradle调试日志的最后一位。 11:22:57.079 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection request: [route: {s}->https://maven.vaadin.com:443][total kept alive: 0; route allocated: 1 of 2; total allocated: 1 of 20] 11:22:57.080 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection leased: [id: 203][route: {s}->https://maven.vaadin.com:443][total kept alive: 0; route allocated: 2 of 2; total allocated: 2 of 20] 11:22:57.080 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Opening connection {s}->https://maven.vaadin.com:443 11:22:57.080 [DEBUG] [org.apache.http.impl.conn.DefaultHttpClientConnectionOperator] Connecting […]

使用Ant运行JUnit测试

我正在尝试运行我的JUnit测试用例,但我一直收到错误: Test com.capscan.accentsWorld FAILED 已创建报告,但未运行测试。 这是我的Ant代码: 这是我的控制台上的输出消息: Buildfile: C:\Documents and Settings\Ergun Polat\Desktop\Erguns Content\workspace\AccentsWorld\build.xml create_run_jar: [delete] Deleting directory C:\Documents and Settings\Ergun Polat\Desktop\Erguns Content\workspace\AccentsWorld\outputs\reports [mkdir] Created dir: C:\Documents and Settings\Ergun Polat\Desktop\Erguns Content\workspace\AccentsWorld\outputs\reports [junit] Running com.capscan.accentsWorld [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec [junit] Test com.capscan.accentsWorld FAILED [junitreport] Processing C:\Documents and Settings\Ergun Polat\Desktop\Erguns […]

在pom.xml中自动增加版本号并在应用程序中显示它

我多次看到这个问题,但是没有令人满意的答案:让我们假设你有maven项目生产一些jar(java桌面应用程序)。 如何在pom.xml中定义版本号,在适当的时候(例如,每次构建时)会自动递增(甚至手动,无关紧要),但是可以将此版本加载到应用程序中? 目标是为用户显示他当前使用的应用程序的版本。

Java:gradle构建失败bootRepackage(在创建jar上)

做一个Web项目意味着:Java(jdk 1.7.0.51)+ Spring框架(+ velocity)+ Hibernate + Gradle + Apache Tomcat。 突然间,出现了一个问题:你无法进行构建。 使用Gradle构建。 16:50:30:执行外部任务’build’…:compileJava:processResources UP-TO-DATE:classes:jar:bootRepackage FAILED FAILURE:构建失败,exception。 *出了什么问题:任务执行失败’:bootRepackage’。 MALFORMED *尝试:使用–stacktrace选项运行以获取堆栈跟踪。 使用–info或–debug选项运行以获取更多日志输出。 BUILD FAILED总时间:14.935秒MALFORMED 可能是什么问题呢? 完整日志: :bootRepackage FAILED FAILURE:构建因exception而失败。 *出了什么问题:任务执行失败’:bootRepackage’。 exception *尝试: 使用–info或–debug选项运行以获取更多日志输出。 *exception是:org.gradle.api.tasks.TaskExecutionException:任务’:bootRepackage’的执行失败。 在org.gradle上的org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)位于org.gradle.api的org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)上的.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskEx ecuter.java:35)。在org.gradle.api.internal.tasks的org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExec uter.java:42)中的internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) .execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.j ava:52)org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)at org.gradle.api.internal.tasks.execution。 ExecuteAtMostOnceTask Executer.execute(ExecuteAtMostOnceTaskExecuter.j ava:43)atg.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:286)at org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.executeTask(AbstractTaskPlanExecut or.java: 79)org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.processTask(AbstractTaskPlanExecut or.java:63)org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)at org.gradle。执行.taskgraph.DefaultTaskPlanExecutor $ 1.run(DefaultTaskPlanExecutor.java:33)org.gradle.internal.Factories $ […]

Gradle:战争任务有冲突包含/排除

我正在尝试使用Gradle构建一个war文件,但是我遇到了一个问题,不包括一个目录,并且包含另一个恰好具有相同名称但不同父目录的目录。 请注意下面的第一个代码示例中, css/目录都没有包含在最终的war文件中 – 我假设因为Gradle认为我想要排除任何名为css/ 目录而不管其绝对路径。 基本上我想排除src/main/webapp/css并包含build/tmp/css因为后者包含缩小的代码。 我怎样才能做到这一点? 我已尝试以各种方式指定绝对路径,但没有取得任何成功。 war { dependsOn minify from(‘build/tmp/’) { include (‘css/’) } exclude(‘WEB-INF/classes/’, ‘css/’) } 如果我不排除css/ like,那么: war { dependsOn minify from(‘build/tmp/’) { include (‘css/’) } exclude(‘WEB-INF/classes/’) } 然后结果是包括缩小和非缩小代码。

有没有Java的http_build_query函数的Java等价物?

我有一个包含我的数据的Map,并希望用它构建一个查询字符串,就像我在PHP上使用http_build_query一样。 我不确定这段代码是否是最好的实现,或者我忘记了什么? public String toQueryString(Map data) throws UnsupportedEncodingException { StringBuffer queryString = new StringBuffer(); for (Entry pair : data.entrySet()) { queryString.append ( URLEncoder.encode ( (String) pair.getKey (), “UTF-8” ) + “=” ); queryString.append ( URLEncoder.encode ( (String) pair.getValue (), “UTF-8” ) + “&” ); } if (queryString.length () > 0) { queryString.deleteCharAt ( queryString.length () […]

Maven:附加多个工件

我有一个使用一些自定义jar的maven项目[在任何存储库中都找不到]。 要将它们与Maven构建一起添加,我在maven中使用attach-artifact目标。 以下是我的pom文件: 4.0.0 com.maximus adminbuild 1.0-SNAPSHOT pom adminbuild src/main/java src/test/java target org.codehaus.mojo build-helper-maven-plugin 1.7 attach-artifacts package attach-artifact ${basedir}/../../resources/dependencies/java/customjar1.jar jar ${basedir}/../../resources/dependencies/java/customjar2.jar jar 我使用这些jar [customjar1.jar,customjar2.jar]的项目依赖于上面的pom文件[adminbuild]。 当我执行mvn clean install命令时,出现以下错误: [ERROR] Failed to execute goal org.codehaus.mojo:build-helper-maven-plugin:1.7:attach-artifact (attach-artifacts) on project adminbuild: The artifact with same type and classifier: jar:null is used more than once. -> [Help 1] 以下是mvn -version命令的输出: […]

eclipse不编译项目

我在eclipse中打开了运行项目。 在意外重启窗口之后,现在当我打开日食时,我看到我的项目标有一个小红十字。 现在当我运行main方法时,我得到了一个java.lang.NoClassDefFoundError 。 我试过重启eclipse,Project – > Clean但它没有解决问题。 当我检查项目目录时,在’target’文件夹中没有编译的.class文件。 我尝试构建项目,但我无法获取编译的类文件,这是错误的原因。 我该如何解决这个问题?

使用java,eclipse和ant自动复制构建的文件和库

我在Windows 7上使用java和eclipse,我正在尝试构建一个服务器程序,它将运行在我网络上的另一台(ubuntu)机器上。 如何让eclipse将构建的类文件保存到外部位置(我有一个驱动器映射,或者它甚至可以通过ssh / sftp /其他)? 我在该机器上创建了一个git存储库,因此类文件保存在那里,但是我正在使用的外部库(在构建路径上)不会保存为存储库的一部分。 理想情况下,我想将eclipse自动复制到另一个目录中使用的内置类和库(当我点击“run”时,甚至更理想地让它自动运行/终止程序,虽然我怀疑可能有点太过乐观)。 我认为我相信用ant安装的ant可以做到这一点,但我不确定如何实现它。