Explorar o código

create os-dependent buildkit.zip with all java resources required to build a self-contained package

Sebastian Stenzel %!s(int64=6) %!d(string=hai) anos
pai
achega
26aee9e42c

+ 1 - 0
.idea/encodings.xml

@@ -2,6 +2,7 @@
 <project version="4">
   <component name="Encoding" addBOMForNewFiles="with NO BOM">
     <file url="file://$PROJECT_DIR$/main" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/main/buildkit" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/main/commons" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/main/keychain" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/main/launcher" charset="UTF-8" />

+ 1 - 1
.idea/misc.xml

@@ -8,7 +8,7 @@
       </list>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_10" project-jdk-name="10" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="false" project-jdk-name="11" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />
   </component>
 </project>

+ 29 - 3
.travis.yml

@@ -61,13 +61,39 @@ deploy:
 - provider: script
   skip_cleanup: true
   script: >-
-    curl -T main/ant-kit/target/antkit.zip
+    curl -T main/buildkit/target/buildkit-linux.zip
     -u cryptobot:${BINTRAY_API_KEY}
-    -H "X-Bintray-Package:ant-kit"
+    -H "X-Bintray-Package:buildkit"
+    -H "X-Bintray-Version:${TRAVIS_TAG}"
+    -H "X-Bintray-Override:1"
+    -H "X-Bintray-Publish:1"
+    https://api.bintray.com/content/cryptomator/cryptomator/buildkit-linux-${TRAVIS_TAG}.zip
+  on:
+    repo: cryptomator/cryptomator
+    tags: true
+- provider: script
+  skip_cleanup: true
+  script: >-
+    curl -T main/buildkit/target/buildkit-mac.zip
+    -u cryptobot:${BINTRAY_API_KEY}
+    -H "X-Bintray-Package:buildkit"
+    -H "X-Bintray-Version:${TRAVIS_TAG}"
+    -H "X-Bintray-Override:1"
+    -H "X-Bintray-Publish:1"
+    https://api.bintray.com/content/cryptomator/cryptomator/buildkit-mac-${TRAVIS_TAG}.zip
+  on:
+    repo: cryptomator/cryptomator
+    tags: true
+- provider: script
+  skip_cleanup: true
+  script: >-
+    curl -T main/buildkit/target/buildkit-win.zip
+    -u cryptobot:${BINTRAY_API_KEY}
+    -H "X-Bintray-Package:buildkit"
     -H "X-Bintray-Version:${TRAVIS_TAG}"
     -H "X-Bintray-Override:1"
     -H "X-Bintray-Publish:1"
-    https://api.bintray.com/content/cryptomator/cryptomator/antkit-${TRAVIS_TAG}.zip
+    https://api.bintray.com/content/cryptomator/cryptomator/buildkit-win-${TRAVIS_TAG}.zip
   on:
     repo: cryptomator/cryptomator
     tags: true

+ 0 - 99
main/ant-kit/pom.xml

@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.cryptomator</groupId>
-		<artifactId>main</artifactId>
-		<version>1.5.0-SNAPSHOT</version>
-	</parent>
-	<artifactId>ant-kit</artifactId>
-	<packaging>pom</packaging>
-	<name>Cryptomator Ant Build Kit</name>
-	<description>Builds a package that can be built with Ant locally</description>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.cryptomator</groupId>
-			<artifactId>launcher</artifactId>
-		</dependency>
-	</dependencies>
-
-	<build>	
-		<plugins>
-			<!-- copy libraries to target/libs/: -->
-			<plugin>
-				<artifactId>maven-dependency-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>copy-libs</id>
-						<phase>prepare-package</phase>
-						<goals>
-							<goal>copy-dependencies</goal>
-						</goals>
-						<configuration>
-							<outputDirectory>${project.build.directory}/libs</outputDirectory>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-
-			<!-- copy resources to target/: -->
-			<plugin>
-				<artifactId>maven-resources-plugin</artifactId>
-				<version>3.0.2</version>
-				<executions>
-					<execution>
-						<id>copy-resources</id>
-						<phase>prepare-package</phase>
-						<goals>
-							<goal>copy-resources</goal>
-						</goals>
-						<configuration>
-							<outputDirectory>${project.build.directory}</outputDirectory>
-							<escapeString>\</escapeString>
-							<encoding>UTF-8</encoding>
-							<resources>
-								<resource>
-									<directory>src/main/resources</directory>
-									<filtering>true</filtering>
-									<includes>
-										<include>build.xml</include>
-									</includes>
-								</resource>
-								<resource>
-									<directory>src/main/resources</directory>
-									<filtering>false</filtering>
-									<includes>
-										<include>logback.xml</include>
-									</includes>
-								</resource>
-							</resources>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-
-			<!-- create antkit.zip: -->
-			<plugin>
-				<artifactId>maven-assembly-plugin</artifactId>
-				<version>3.1.0</version>
-				<executions>
-					<execution>
-						<id>make-assembly</id>
-						<phase>package</phase>
-						<goals>
-							<goal>single</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<descriptors>
-						<descriptor>assembly.xml</descriptor>
-					</descriptors>
-					<appendAssemblyId>false</appendAssemblyId>
-					<finalName>antkit</finalName>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>

+ 0 - 52
main/ant-kit/src/main/resources/build.xml

@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="Cryptomator" default="create-jar" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant">
-	<taskdef uri="javafx:com.sun.javafx.tools.ant" resource="com/sun/javafx/tools/ant/antlib.xml" classpath="\${java.class.path}:\${java.home}/lib/ant-javafx.jar:." />
-	
-	<!-- Define application to build -->
-	<fx:application id="Cryptomator" name="Cryptomator" version="${project.version}" mainClass="org.cryptomator.launcher.Cryptomator" />
-
-	<!-- Print build environment properties -->
-	<target name="check-env">
-		<echoproperties/>
-	</target>
-	
-	<!-- Create main application jar -->
-	<target name="create-jar" depends="check-env">
-		<fx:jar destfile="antbuild/Cryptomator-${project.version}.jar">
-			<fx:application refid="Cryptomator" />
-			<fx:fileset dir="libs" includes="launcher-${project.version}.jar" />
-			<fx:resources>
-				<fx:fileset dir="libs" type="jar" includes="*.jar" excludes="launcher-${project.version}.jar" />
-			</fx:resources>
-			<fx:manifest>
-				<fx:attribute name="Implementation-Vendor" value="cryptomator.org" />
-				<fx:attribute name="Implementation-Title" value="Cryptomator"/>
-				<fx:attribute name="Implementation-Version" value="${project.version}" />
-			</fx:manifest>
-		</fx:jar>
-	</target>
-
-	<!-- Create Image -->
-	<target name="image" depends="create-jar">
-		<fx:deploy nativeBundles="image" outdir="antbuild" verbose="true">
-			<fx:application refid="Cryptomator" />
-			<fx:info title="Cryptomator" vendor="cryptomator.org" copyright="cryptomator.org" license="GPL" category="Utility"/>
-			<fx:platform j2se="10">
-				<fx:property name="logback.configurationFile" value="\${antbuild.logback.configurationFile}" />
-				<fx:property name="cryptomator.settingsPath" value="\${antbuild.cryptomator.settingsPath}" />
-				<fx:property name="cryptomator.ipcPortPath" value="\${antbuild.cryptomator.ipcPortPath}" />
-				<fx:property name="cryptomator.keychainPath" value="\${antbuild.cryptomator.keychainPath}"/>
-				<fx:jvmarg value="-Xss2m"/>
-				<fx:jvmarg value="-Xmx512m"/>
-			</fx:platform>
-			<fx:resources>
-				<fx:fileset dir="antbuild" type="jar" includes="Cryptomator-${project.version}.jar" />
-				<fx:fileset dir="libs" type="jar" includes="*.jar" excludes="launcher-${project.version}.jar"/>
-			</fx:resources>
-			<fx:permissions elevated="false" />
-			<fx:preferences install="true" />
-			<fx:bundleArgument arg="dropinResourcesRoot" value="\${antbuild.dropinResourcesRoot}"/>
-		</fx:deploy>
-	</target>
-	
-</project>

+ 3 - 16
main/ant-kit/assembly.xml

@@ -15,24 +15,11 @@
 			<outputDirectory>libs</outputDirectory>
 		</fileSet>
 		<fileSet>
-			<directory>target/fixed-binaries</directory>
-			<filtered>false</filtered>
-			<outputDirectory>fixed-binaries</outputDirectory>
-			<fileMode>755</fileMode>
-		</fileSet>
-		<fileSet>
-			<directory>target/package</directory>
-			<filtered>false</filtered>
-			<outputDirectory>package</outputDirectory>
-		</fileSet>
-		<fileSet>
-			<directory>target</directory>
+			<directory>target/linux-libs</directory>
 			<includes>
-				<include>build.xml</include>
-				<include>logback.xml</include>
+				<include>*.jar</include>
 			</includes>
-			<filtered>false</filtered>
-			<outputDirectory>.</outputDirectory>
+			<outputDirectory>libs</outputDirectory>
 		</fileSet>
 	</fileSets>
 </assembly>

+ 25 - 0
main/buildkit/assembly-mac.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
+	<id>tarball</id>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<formats>
+		<format>zip</format>
+	</formats>
+	<fileSets>
+		<fileSet>
+			<directory>target/libs</directory>
+			<includes>
+				<include>*.jar</include>
+			</includes>
+			<outputDirectory>libs</outputDirectory>
+		</fileSet>
+		<fileSet>
+			<directory>target/mac-libs</directory>
+			<includes>
+				<include>*.jar</include>
+			</includes>
+			<outputDirectory>libs</outputDirectory>
+		</fileSet>
+	</fileSets>
+</assembly>

+ 25 - 0
main/buildkit/assembly-win.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
+	<id>tarball</id>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<formats>
+		<format>zip</format>
+	</formats>
+	<fileSets>
+		<fileSet>
+			<directory>target/libs</directory>
+			<includes>
+				<include>*.jar</include>
+			</includes>
+			<outputDirectory>libs</outputDirectory>
+		</fileSet>
+		<fileSet>
+			<directory>target/win-libs</directory>
+			<includes>
+				<include>*.jar</include>
+			</includes>
+			<outputDirectory>libs</outputDirectory>
+		</fileSet>
+	</fileSets>
+</assembly>

+ 129 - 0
main/buildkit/pom.xml

@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.cryptomator</groupId>
+		<artifactId>main</artifactId>
+		<version>1.5.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>buildkit</artifactId>
+	<packaging>pom</packaging>
+	<name>Cryptomator Build Kit</name>
+	<description>Builds a package that can be built with Ant locally</description>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.cryptomator</groupId>
+			<artifactId>launcher</artifactId>
+		</dependency>
+	</dependencies>
+
+	<build>	
+		<plugins>
+			<!-- copy libraries to target/libs/: -->
+			<plugin>
+				<artifactId>maven-dependency-plugin</artifactId>
+				<version>3.1.1</version>
+				<executions>
+					<execution>
+						<id>copy-libs</id>
+						<phase>prepare-package</phase>
+						<goals>
+							<goal>copy-dependencies</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>${project.build.directory}/libs</outputDirectory>
+							<excludeClassifiers>linux,mac,win</excludeClassifiers>
+						</configuration>
+					</execution>
+					<execution>
+						<id>copy-linux-libs</id>
+						<phase>prepare-package</phase>
+						<goals>
+							<goal>copy-dependencies</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>${project.build.directory}/linux-libs</outputDirectory>
+							<includeGroupIds>org.openjfx</includeGroupIds>
+							<classifier>linux</classifier>
+						</configuration>
+					</execution>
+					<execution>
+						<id>copy-mac-libs</id>
+						<phase>prepare-package</phase>
+						<goals>
+							<goal>copy-dependencies</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>${project.build.directory}/mac-libs</outputDirectory>
+							<includeGroupIds>org.openjfx</includeGroupIds>
+							<classifier>mac</classifier>
+						</configuration>
+					</execution>
+					<execution>
+						<id>copy-win-libs</id>
+						<phase>prepare-package</phase>
+						<goals>
+							<goal>copy-dependencies</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>${project.build.directory}/win-libs</outputDirectory>
+							<includeGroupIds>org.openjfx</includeGroupIds>
+							<classifier>win</classifier>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+
+			<!-- create buildkit.zip: -->
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<version>3.1.1</version>
+				<executions>
+					<execution>
+						<id>assemble-linux</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+						<configuration>
+							<descriptors>
+								<descriptor>assembly-linux.xml</descriptor>
+							</descriptors>
+							<appendAssemblyId>false</appendAssemblyId>
+							<finalName>buildkit-linux</finalName>
+						</configuration>
+					</execution>
+					<execution>
+						<id>assemble-mac</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+						<configuration>
+							<descriptors>
+								<descriptor>assembly-mac.xml</descriptor>
+							</descriptors>
+							<appendAssemblyId>false</appendAssemblyId>
+							<finalName>buildkit-mac</finalName>
+						</configuration>
+					</execution>
+					<execution>
+						<id>assemble-win</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+						<configuration>
+							<descriptors>
+								<descriptor>assembly-win.xml</descriptor>
+							</descriptors>
+							<appendAssemblyId>false</appendAssemblyId>
+							<finalName>buildkit-win</finalName>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>

+ 1 - 1
main/commons/pom.xml

@@ -14,7 +14,7 @@
 		<!-- JavaFx -->
 		<dependency>
 			<groupId>org.openjfx</groupId>
-			<artifactId>javafx-controls</artifactId>
+			<artifactId>javafx-base</artifactId>
 		</dependency>
 
 		<!-- Libs -->

+ 7 - 2
main/pom.xml

@@ -31,7 +31,7 @@
 		<cryptomator.dokany.version>1.1.3</cryptomator.dokany.version>
 		<cryptomator.webdav.version>1.0.6</cryptomator.webdav.version>
 
-		<javafx.version>11</javafx.version>
+		<javafx.version>11.0.2</javafx.version>
 
 		<commons-io.version>2.6</commons-io.version>
 		<commons-lang3.version>3.8.1</commons-lang3.version>
@@ -125,6 +125,11 @@
 			</dependency>
 
 			<!-- JavaFX -->
+			<dependency>
+				<groupId>org.openjfx</groupId>
+				<artifactId>javafx-base</artifactId>
+				<version>${javafx.version}</version>
+			</dependency>
 			<dependency>
 			  <groupId>org.openjfx</groupId>
 			  <artifactId>javafx-controls</artifactId>
@@ -264,7 +269,7 @@
 			<id>release</id>
 			<modules>
 				<module>uber-jar</module>
-				<module>ant-kit</module>
+				<module>buildkit</module>
 			</modules>
 		</profile>
 		<profile>