Create spring-boot-antlib module
Create a new spring-boot-antlib module which allows Apache Ant users to easily create executable jars. Fixes gh-3339
This commit is contained in:
committed by
Phillip Webb
parent
8d948dfa6c
commit
ae4559eb4f
93
spring-boot-tools/spring-boot-antlib/src/it/sample/build.xml
Normal file
93
spring-boot-tools/spring-boot-antlib/src/it/sample/build.xml
Normal file
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0"?>
|
||||
<project name="spring-boot-antlib-test" default="antunit" xmlns:au="antlib:org.apache.ant.antunit" xmlns:spring-boot="antlib:org.springframework.boot.ant" xmlns:ivy="antlib:org.apache.ivy.ant">
|
||||
|
||||
<property name="src.dir" location="src/main/java" />
|
||||
<property name="resource.dir" location="src/main/resources" />
|
||||
<property name="target.dir" location="target" />
|
||||
<property name="classes.dir" location="${target.dir}/classes" />
|
||||
|
||||
<target name="setUp">
|
||||
<ivy:cachepath inline="true" pathid="compile.classpath" organisation="joda-time" module="joda-time" type="jar" revision="2.8.1" />
|
||||
|
||||
<mkdir dir="${classes.dir}" />
|
||||
<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="compile.classpath" />
|
||||
</target>
|
||||
|
||||
<target name="tearDown">
|
||||
<delete dir="${classes.dir}" />
|
||||
</target>
|
||||
|
||||
<target name="test-findmainclass-set-property" depends="setUp">
|
||||
<spring-boot:findmainclass classesroot="${classes.dir}" property="main-class" />
|
||||
<au:assertEquals expected="org.test.SampleApplication" actual="${main-class}" />
|
||||
</target>
|
||||
|
||||
<target name="test-findmainclass-log-message" depends="setUp">
|
||||
<spring-boot:findmainclass classesroot="${classes.dir}" />
|
||||
<au:assertLogContains text="org.test.SampleApplication" />
|
||||
</target>
|
||||
|
||||
<target name="test-findmainclass-override" depends="setUp">
|
||||
<spring-boot:findmainclass mainclass="OVERRIDDEN" property="main-class" />
|
||||
<au:assertEquals expected="OVERRIDDEN" actual="${main-class}" />
|
||||
</target>
|
||||
|
||||
<macrodef name="check-exejar">
|
||||
<attribute name="jar" />
|
||||
<sequential>
|
||||
<echo>Checking @{jar}</echo>
|
||||
<au:assertFileExists file="@{jar}" />
|
||||
|
||||
<javaresource id="foo" name="foo">
|
||||
<classpath>
|
||||
<pathelement location="@{jar}" />
|
||||
</classpath>
|
||||
</javaresource>
|
||||
<au:assertRefResourceExists refid="foo" />
|
||||
<au:assertRefResourceContains refid="foo" value="FOO" />
|
||||
|
||||
<java jar="@{jar}" fork="true" />
|
||||
<au:assertLogContains text="LocalDate" />
|
||||
</sequential>
|
||||
</macrodef>
|
||||
|
||||
<target name="test-exejar-explicit-start-class" depends="setUp">
|
||||
<local name="jar" />
|
||||
<property name="jar" location="${target.dir}/explicit.jar" />
|
||||
<spring-boot:exejar destfile="${jar}" classes="${classes.dir}" start-class="org.test.SampleApplication">
|
||||
<resources>
|
||||
<fileset dir="${resource.dir}" />
|
||||
</resources>
|
||||
<lib>
|
||||
<path refid="compile.classpath" />
|
||||
</lib>
|
||||
</spring-boot:exejar>
|
||||
<check-exejar jar="${jar}" />
|
||||
</target>
|
||||
|
||||
<target name="test-exejar-find-start-class" depends="setUp">
|
||||
<local name="jar" />
|
||||
<property name="jar" location="${target.dir}/found.jar" />
|
||||
<spring-boot:exejar destfile="${jar}" classes="${classes.dir}">
|
||||
<resources>
|
||||
<fileset dir="${resource.dir}" />
|
||||
</resources>
|
||||
<lib>
|
||||
<path refid="compile.classpath" />
|
||||
</lib>
|
||||
</spring-boot:exejar>
|
||||
<check-exejar jar="${jar}" />
|
||||
</target>
|
||||
|
||||
<target name="antunit">
|
||||
<au:antunit>
|
||||
<au:plainlistener />
|
||||
<file file="${ant.file}" />
|
||||
</au:antunit>
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete dir="${target.dir}" />
|
||||
</target>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,16 @@
|
||||
<ivysettings>
|
||||
<settings defaultResolver="chain" />
|
||||
<resolvers>
|
||||
<chain name="chain">
|
||||
<!-- NOTE: You should declare only repositories that you need here -->
|
||||
<filesystem name="local" local="true" m2compatible="true">
|
||||
<artifact pattern="${user.home}/.m2/[organisation]/[module]/[revision]/[module]-[revision].[ext]" />
|
||||
<ivy pattern="${user.home}/.m2/[organisation]/[module]/[revision]/[module]-[revision].pom" />
|
||||
</filesystem>
|
||||
<ibiblio name="ibiblio" m2compatible="true" />
|
||||
<ibiblio name="spring-milestones" m2compatible="true" root="http://repo.spring.io/release" />
|
||||
<ibiblio name="spring-milestones" m2compatible="true" root="http://repo.spring.io/milestone" />
|
||||
<ibiblio name="spring-snapshots" m2compatible="true" root="http://repo.spring.io/snapshot" />
|
||||
</chain>
|
||||
</resolvers>
|
||||
</ivysettings>
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright 2012-2014 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.test;
|
||||
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
public class SampleApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(LocalDate.class.getSimpleName());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
FOO
|
||||
Reference in New Issue
Block a user