我有一个pom.xml看起来像这样:
<dependencies>
<dependency>
<groupId>javafx-packager</groupId>
<artifactId>javafx-packager</artifactId>
<version>1.8.0_40</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/ant-javafx.jar</systemPath>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
我如何在Gradle中做同样的事情?
更新:我试过这样做:
dependencies {
compile files("${System.getenv('JAVA_HOME')}/../lib/ant-javafx.jar")
}
Run Code Online (Sandbox Code Playgroud)
正如Giuseppe Ricupero所建议的,但我仍然遇到编译错误:
>gradle build
> Task :compileJava FAILED
C:\Users\pupeno\Documents\Dashman\code\custom-file-extension-windows-bundler\src\main\java\com\oracle\tools\packager\windows\CustomLauncherFileExtensionAppBundler.java:17: error: cannot find symbol
import static com.oracle.tools.packager.StandardBundlerParam.*;
^
symbol: class StandardBundlerParam
location: package com.oracle.tools.packager
C:\Users\pupeno\Documents\Dashman\code\custom-file-extension-windows-bundler\src\main\java\com\oracle\tools\packager\windows\CustomLauncherFileExtensionAppBundler.java:18: error: cannot find symbol
import static com.oracle.tools.packager.windows.WindowsBundlerParam.*;
^
symbol: class WindowsBundlerParam
location: package com.oracle.tools.packager.windows
C:\Users\pupeno\Documents\Dashman\code\custom-file-extension-windows-bundler\src\main\java\com\oracle\tools\packager\windows\CustomLauncherFileExtensionAppBundler.java:23: error: cannot find symbol
public class CustomLauncherFileExtensionAppBundler extends AbstractImageBundler {
Run Code Online (Sandbox Code Playgroud)
完整的pom.xml,我想转换到摇篮是:
<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>
<groupId>de.dynamicfiles.projects.javafx.bundler</groupId>
<artifactId>custom-file-extension-windows-bundler</artifactId>
<version>1.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<developers>
<developer>
<name>Danny Althoff</name>
<email>fibrefox@dynamicfiles.de</email>
<url>https://www.dynamicfiles.de</url>
</developer>
</developers>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<version.java.source>1.8</version.java.source>
<version.java.target>1.8</version.java.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>${version.java.source}</source>
<target>${version.java.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<display_version>${display_version}</display_version>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javafx-packager</groupId>
<artifactId>javafx-packager</artifactId>
<version>1.8.0_40</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/ant-javafx.jar</systemPath>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
更新2:我尝试了gradle init像Giuseppe Ricupero推荐的那样,它想出了这个build.gradle:
apply plugin: 'java'
apply plugin: 'maven'
group = 'de.dynamicfiles.projects.javafx.bundler'
version = '1.0.1-SNAPSHOT'
description = """"""
sourceCompatibility = 1.8
targetCompatibility = 1.8
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
repositories {
maven { url "http://repo.maven.apache.org/maven2" }
}
dependencies {
system group: 'javafx-packager', name: 'javafx-packager', version: '1.8.0_40'
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,它会抛出这个错误:
> Could not find method system() for arguments [{group=javafx-packager, name=javafx-packager, version=1.8.0_40}] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
Run Code Online (Sandbox Code Playgroud)
更新
该gradle init任务自动(尝试?)将其转换pom.xml为等效的 gradle 文件。你可以尝试一下:
构建.gradle
apply plugin: 'java'
apply plugin: 'maven'
group = 'de.dynamicfiles.projects.javafx.bundler'
version = '1.0.1-SNAPSHOT'
description = ""
sourceCompatibility = 1.8
targetCompatibility = 1.8
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
repositories {
maven { url "http://repo.maven.apache.org/maven2" }
}
dependencies {
system group: 'javafx-packager', name: 'javafx-packager', version:'1.8.0_40'
}
Run Code Online (Sandbox Code Playgroud)
设置.gradle
rootProject.name = 'custom-file-extension-windows-bundler'
Run Code Online (Sandbox Code Playgroud)
如果将其与原始答案混合:
apply plugin: 'java'
apply plugin: 'maven'
group = 'de.dynamicfiles.projects.javafx.bundler'
version = '1.0.1-SNAPSHOT'
description = """"""
sourceCompatibility = 1.8
targetCompatibility = 1.8
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
repositories {
maven { url "http://repo.maven.apache.org/maven2" }
}
dependencies {
compile files("${System.getenv('JAVA_HOME')}/lib/ant-javafx.jar")
}
Run Code Online (Sandbox Code Playgroud)
有用。
原答案
我认为你只需要添加一个文件 dep ,例如:
dependencies {
compile files("${System.getenv('JAVA_HOME')}/../lib/ant-javafx.jar")
}
Run Code Online (Sandbox Code Playgroud)
您可以在文档中查看更多内容。
| 归档时间: |
|
| 查看次数: |
741 次 |
| 最近记录: |