我是JavaFx的新手并且在项目设置方面苦苦挣扎。到目前为止,我的应用程序只做了“Hello World”。但是我想为我的项目自动化构建并决定与Travis一起,在我推动时构建我的Github-Repo。所以我在IntelliJ-IDE中创建了JavaFx应用程序并使用IntelliJ的Generate Ant
来创建ant文件,因为Travis需要Maven,Gradle或Ant。
这将我带到这个build.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project name="abstractor" default="all">
<property file="abstractor.properties"/>
<!-- Uncomment the following property if no tests compilation is needed -->
<property name="skip.tests" value="true"/>
<!-- Compiler options -->
<property name="compiler.debug" value="on"/>
<property name="compiler.generate.no.warnings" value="off"/>
<property name="compiler.args" value=""/>
<property name="compiler.max.memory" value="700m"/>
<patternset id="ignored.files">
<exclude name="**/*.hprof/**"/>
<exclude name="**/*.pyc/**"/>
<exclude name="**/*.pyo/**"/>
<exclude name="**/*.rbc/**"/>
<exclude name="**/*.yarb/**"/>
<exclude name="**/*~/**"/>
<exclude name="**/.DS_Store/**"/>
<exclude name="**/.git/**"/>
<exclude name="**/.hg/**"/>
<exclude name="**/.svn/**"/>
<exclude name="**/CVS/**"/>
<exclude name="**/__pycache__/**"/>
<exclude name="**/_svn/**"/>
<exclude name="**/vssver.scc/**"/>
<exclude name="**/vssver2.scc/**"/>
</patternset>
<patternset id="library.patterns">
<include name="*.war"/>
<include name="*.swc"/>
<include name="*.zip"/>
<include name="*.egg"/>
<include name="*.ane"/>
<include name="*.jar"/>
<include name="*.ear"/>
</patternset>
<patternset id="compiler.resources">
<exclude name="**/?*.java"/>
<exclude name="**/?*.form"/>
<exclude name="**/?*.class"/>
<exclude name="**/?*.groovy"/>
<exclude name="**/?*.scala"/>
<exclude name="**/?*.flex"/>
<exclude name="**/?*.kt"/>
<exclude name="**/?*.clj"/>
</patternset>
<!-- JDK definitions -->
<property name="jdk.bin.1.8" value="${jdk.home.1.8}/bin"/>
<path id="jdk.classpath.1.8">
<fileset dir="${jdk.home.1.8}">
<include name="jre/lib/charsets.jar"/>
<include name="jre/lib/deploy.jar"/>
<include name="jre/lib/ext/access-bridge-64.jar"/>
<include name="jre/lib/ext/cldrdata.jar"/>
<include name="jre/lib/ext/dnsns.jar"/>
<include name="jre/lib/ext/jaccess.jar"/>
<include name="jre/lib/ext/jfxrt.jar"/>
<include name="jre/lib/ext/localedata.jar"/>
<include name="jre/lib/ext/nashorn.jar"/>
<include name="jre/lib/ext/sunec.jar"/>
<include name="jre/lib/ext/sunjce_provider.jar"/>
<include name="jre/lib/ext/sunmscapi.jar"/>
<include name="jre/lib/ext/sunpkcs11.jar"/>
<include name="jre/lib/ext/zipfs.jar"/>
<include name="jre/lib/javaws.jar"/>
<include name="jre/lib/jce.jar"/>
<include name="jre/lib/jfr.jar"/>
<include name="jre/lib/jfxswt.jar"/>
<include name="jre/lib/jsse.jar"/>
<include name="jre/lib/management-agent.jar"/>
<include name="jre/lib/plugin.jar"/>
<include name="jre/lib/resources.jar"/>
<include name="jre/lib/rt.jar"/>
</fileset>
</path>
<property name="project.jdk.home" value="${jdk.home.1.8}"/>
<property name="project.jdk.bin" value="${jdk.bin.1.8}"/>
<property name="project.jdk.classpath" value="jdk.classpath.1.8"/>
<!-- Modules -->
<!-- Module Abstractor -->
<dirname property="module.abstractor.basedir" file="${ant.file}"/>
<property name="module.jdk.home.abstractor" value="${project.jdk.home}"/>
<property name="module.jdk.bin.abstractor" value="${project.jdk.bin}"/>
<property name="module.jdk.classpath.abstractor" value="${project.jdk.classpath}"/>
<property name="compiler.args.abstractor" value="-encoding UTF-8 -source 8 -target 8 ${compiler.args}"/>
<property name="abstractor.output.dir" value="${module.abstractor.basedir}/out/production/Abstractor"/>
<property name="abstractor.testoutput.dir" value="${module.abstractor.basedir}/out/test/Abstractor"/>
<path id="abstractor.module.bootclasspath">
<!-- Paths to be included in compilation bootclasspath -->
</path>
<path id="abstractor.module.production.classpath">
<path refid="${module.jdk.classpath.abstractor}"/>
</path>
<path id="abstractor.runtime.production.module.classpath">
<pathelement location="${abstractor.output.dir}"/>
</path>
<path id="abstractor.module.classpath">
<path refid="${module.jdk.classpath.abstractor}"/>
<pathelement location="${abstractor.output.dir}"/>
</path>
<path id="abstractor.runtime.module.classpath">
<pathelement location="${abstractor.testoutput.dir}"/>
<pathelement location="${abstractor.output.dir}"/>
</path>
<patternset id="excluded.from.module.abstractor">
<patternset refid="ignored.files"/>
</patternset>
<patternset id="excluded.from.compilation.abstractor">
<patternset refid="excluded.from.module.abstractor"/>
</patternset>
<path id="abstractor.module.sourcepath">
<dirset dir="${module.abstractor.basedir}">
<include name="src"/>
</dirset>
</path>
<target name="compile.module.abstractor" depends="compile.module.abstractor.production,compile.module.abstractor.tests" description="Compile module Abstractor"/>
<target name="compile.module.abstractor.production" description="Compile module Abstractor; production classes">
<mkdir dir="${abstractor.output.dir}"/>
<javac destdir="${abstractor.output.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true" executable="${module.jdk.bin.abstractor}/javac">
<compilerarg line="${compiler.args.abstractor}"/>
<bootclasspath refid="abstractor.module.bootclasspath"/>
<classpath refid="abstractor.module.production.classpath"/>
<src refid="abstractor.module.sourcepath"/>
<patternset refid="excluded.from.compilation.abstractor"/>
</javac>
<copy todir="${abstractor.output.dir}">
<fileset dir="${module.abstractor.basedir}/src">
<patternset refid="compiler.resources"/>
<type type="file"/>
</fileset>
</copy>
</target>
<target name="compile.module.abstractor.tests" depends="compile.module.abstractor.production" description="compile module Abstractor; test classes" unless="skip.tests"/>
<target name="clean.module.abstractor" description="cleanup module">
<delete dir="${abstractor.output.dir}"/>
<delete dir="${abstractor.testoutput.dir}"/>
</target>
<target name="init" description="Build initialization">
</target>
<target name="clean" depends="clean.module.abstractor" description="cleanup all"/>
<target name="build.modules" depends="init, clean, compile.module.abstractor" description="build all modules"/>
<target name="all" depends="build.modules" description="build all"/>
</project>
此外,我创建了以下Travis-Config(.travis.yml):
language: java
sudo: false
jdk:
- oraclejdk8
email: false
branches:
only:
- master
ant: run
我的问题是特拉维斯总是尝试ant test
,这不是我的项目中创建的。以下是Travis-CI的精确输出:
$ java -Xmx32m -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
$ javac -J-Xmx32m -version
javac 1.8.0_31
2.20s$ ant test
Buildfile: /home/travis/build/sebi5000/Abstractor/build.xml
BUILD FAILED
Target "test" does not exist in the project "abstractor".
Total time: 1 second
The command "ant test" exited with 1.
Done. Your build exited with 1.
我对ant并不了解,只是使用它,因为IntelliJ可以为我生成文件。所以我尝试了几个例子,例如评论包含单词'test'的所有行。此外,我在build.xml中取消注释此属性:
<property name="skip.tests" value="true"/>
因为IntelliJ告诉我这会跳过测试编译。
无论我尝试什么,我总是想出同样的结果。有人可以帮我吗?我确信这很简单,但我不明白。