相关疑难解决方法(0)

Android Studio:将jar添加为库?

我正在尝试使用新的Android Studio,但我似乎无法让它正常工作.

我正在使用Gson库来序列化/反序列化JSON对象.但是库不知何故不包含在构建中.

我创建了一个只有MainActivity的新项目.在/ libs文件夹中复制gson-2.2.3.jar并将其添加为库依赖项(右键单击 - >添加为库).这包括android studio中的jar,因此可以从源文件中引用它.

当我尝试运行该项目时,它无法编译,所以我添加:

compile files('libs/gson-2.2.3.jar')
Run Code Online (Sandbox Code Playgroud)

到de .gradle文件中的依赖项.之后它正确编译,但在运行应用程序时,我得到了一个ClassDefNotFoundException.

有谁知道我做错了什么?

android dependency-management gradle gson android-gradle-plugin

1006
推荐指数
21
解决办法
72万
查看次数

Maven:通过相对路径为jar添加依赖项

我有一个专有的jar,我想作为依赖添加到我的pom.

但我不想将它添加到存储库.原因是我希望我的常用maven命令等mvn compile开箱即用.(没有要求开发人员将其自己添加到某个存储库中).

我希望jar在源代码控制中位于第3方库中,并通过pom.xml文件的相对路径链接到它.

可以这样做吗?怎么样?

java dependencies build-process maven-2 build

221
推荐指数
7
解决办法
27万
查看次数

如何使用Nant/Ant命名模式?

我必须承认,我总是忘记Nant命名模式的语法内部(例如文件集中使用的那些).在我看来,双星号/单星号的东西似乎是非常容易忘记的.

有人可以提供命名模式的权威指南吗?

ant nant

93
推荐指数
3
解决办法
4万
查看次数

将本地.aar文件添加到我的gradle构建中

所以我创建了一个Android-Library,并成功地将其编译成.aar文件,我称之为aar文件:"projectx-sdk-1.0.0.aar"现在我希望我的新项目依赖于这个aar所以我所做的就是关注这篇文章:http:// life. nimbco.us/referencing-local-aar-files-with-android-studios-new-gradle-based-build-system/

但由于我没有得到预期的结果,这篇文章让我感到困惑:

aar的包名是:com.projectx.photosdk并调用里面的模块sdk

这是我目前的项目结构:

|-SuperAwesomeApp
|--.idea
|--gradle
|--App
|---aars
|----projectx-sdk-1.0.0.aar
|---build
|---jars
|---src
|---build.gradle
Run Code Online (Sandbox Code Playgroud)

他是我的gradle构建文件:

apply plugin: 'android'

buildscript {
    repositories {
        mavenCentral()
        flatDir {
            dirs 'aars'
        }
    }
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:gridlayout-v7:19.0.1'
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.android.support:appcompat-v7:19.0.1'


    compile 'com.projectx.photosdk:sdk:1.0.0@aar'
//    compile files( …
Run Code Online (Sandbox Code Playgroud)

android gradle maven android-studio aar

66
推荐指数
4
解决办法
6万
查看次数

在我的Gradle Java项目中使用本地jar作为依赖项

我有一个名为的本地jar文件mylib.jar。我想将其用作Gradle Java项目中的依赖项。

这是我尝试的:

libs/在项目根目录下创建了一个文件夹。我将jar文件放在libs/文件夹下。

MyProject
 ->libs/mylib.jar
 ->build.gradle
 ->src/...
Run Code Online (Sandbox Code Playgroud)

在我的build.gradle中:

apply plugin: 'java-library'

group 'com.my.app'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()

    flatDir {
        dirs 'libs'
    }
 }

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    api files('libs/mylib.jar')
}
Run Code Online (Sandbox Code Playgroud)

但是我无法访问mylib.jar项目代码中定义的公共类。为什么?

=====更多信息=====

我的罐子里的东西:

mylib.jar
    > com.my.jar.package
      >ClassFromJar.class
Run Code Online (Sandbox Code Playgroud)

这是我使用广口瓶的方法:

// Compilation error: Cannot resolve symobl 'ClassFromJar'
import com.my.jar.package.ClassFromJar;

public class MyEntryPoint {
    // Compilation error: Cannot resolve symbol 'ClassFromJar'
    ClassFromJar instance = new …
Run Code Online (Sandbox Code Playgroud)

java jar gradle

9
推荐指数
1
解决办法
306
查看次数

与Maven systemPath等效的Gradle

我无法弄清楚应该怎样满足这种依赖性:

  <dependency>
      <groupId>javax.jnlp</groupId>
      <artifactId>jnlp-api</artifactId>
      <version>8.0</version>
      <scope>system</scope>
      <systemPath>${java.home}/lib/javaws.jar</systemPath>
  </dependency>
Run Code Online (Sandbox Code Playgroud)

dependencies gradle maven

6
推荐指数
1
解决办法
1771
查看次数

如何在 Gradle JAR 类路径构建脚本中包含 com.sun.tools JAR 并与我的 IDE 同步?

我需要 com.sun.tools jar 作为编译依赖项,所以我只是将它复制到我的 Intellij 项目中的 libs 文件夹中。但是,我正在尝试使用 gradle。我只需要它作为我的一个模块的依赖项。我该怎么做呢。我目前在我的模块 jar 任务中有这个:

jar {

    from('build/classes/main/')
    from('libs/tools.jar')

    manifest {
        attributes 'Manifest-Version': '1.0',
                'Class-Path': configurations.runtime.files.collect {"../lib/${it.name}" },
}
Run Code Online (Sandbox Code Playgroud)

我也在我的模块的“依赖项”闭包中尝试了这个:

 compile fileTree(dir: 'lib', include: '*.jar')
Run Code Online (Sandbox Code Playgroud)

我也只是尝试将 jar 放在我的整个项目类路径上,但它仍然没有编译:

    classpath ":tools"
Run Code Online (Sandbox Code Playgroud)

也许它是正确的,但我的 IDE 没有正确刷新?我已经有插件了

apply plugin: 'idea'
Run Code Online (Sandbox Code Playgroud)

在我尝试这样做之前,它一直运行良好。

编辑:它用于注释处理器,所以我试图将它包含在我的模块 jar 构建中,并且没有其他模块依赖它。有没有比复制 jar 更好的方法呢?

java intellij-idea gradle

6
推荐指数
1
解决办法
3028
查看次数

使用来自 flatDir 源的 gradle 插件

如何为自定义插件修改 Gradle 插件{} 管理存储库? 在这篇文章中没有重复,因为它不包括使用flatDir.


如何使用在本地 JAR 中定义的 Gradle 插件,使用新plugin {}语义,而不是已弃用的apply()语义?

当前状态

没有任何解决方案,在发布问题并进行了相当长的搜索之后,我提出了一个问题,想知道这种应该是常见和直接的用法是否在 Gradle 修订后的插件语义中不受设计或疏忽的支持。

不幸的是,我的报告已关闭,没有提供任何有用的信息。

我在一个新问题中要求澄清,但仍在等待。

我很沮丧,原以为社区至少会对讨论这个问题感兴趣。

如果您可以提供信息,请这样做。

第一次更新

在澄清配置插件源的新样式之后,我更新了我的settings.gradle文件以使用以下块打开。然而,我感到遗憾的是,仅凭这一变化我没有看到任何改善。(对于build.gradle文件中引用的插件 id 字段,我尝试了 JAR 元数据中发布的全局 ID 和 JAR 文件的基本名称。两者都同样失败。)

pluginManagement {
    repositories {
        gradlePluginPortal()
        jcenter()
        flatDir {
            dirs 'lib`'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该文档解释了如何使用自定义存储库,但似乎忽略了一个简单的平面目录的情况。

第二次更新

如果我向 JAR 文件和plugins {}块中的相应语句添加版本号,我会得到一些改进。在这种情况下,消息变为:

Plugin [id: 'plugin-id', version: '1.0.0'] was not found in any of the following …
Run Code Online (Sandbox Code Playgroud)

java plugins local repository gradle

6
推荐指数
1
解决办法
3036
查看次数

How to make Gradle fail the build if a file dependency is not found?

I have a Gradle build that has some dependencies of the form

compile files('path/to/local/lib.jar')
Run Code Online (Sandbox Code Playgroud)

(the build is being migrated - eventually these will be replaced)

The build failed because one of these paths was incorrectly specified. But it failed due to a compile error - it looked like Gradle silently ignored the missing dependency.

Is there a simple option or switch that will force Gradle to fail the build if any dependency (particularly local file dependencies) cannot be resolved (eg., …

java gradle

5
推荐指数
1
解决办法
3138
查看次数

Gradle for Java 11 with Modules

我正在尝试在Mac OS上运行示例JavaFX应用程序.

的build.gradle

apply plugin: 'java'
apply plugin: 'application'

repositories {
    mavenCentral()
}


dependencies {
    compile "org.openjfx:javafx-base:11"
    compile "org.openjfx:javafx-graphics:11"
    compile "org.openjfx:javafx-controls:11"
}

compileJava {
    doFirst {
        println "CLASSPATH IS $classpath.asPath"
        options.compilerArgs = [
                '--module-path', classpath.asPath,
                '--add-modules', 'javafx.graphics'
        ]
        classpath = files()
    }
}
Run Code Online (Sandbox Code Playgroud)

Java类

package com.test;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;


public class HelloFX extends Application {

    @Override
    public void start(Stage stage) {
        String javaVersion = System.getProperty("java.version");
        String javafxVersion = System.getProperty("javafx.version");
        Label l = new Label("Hello, JavaFX …
Run Code Online (Sandbox Code Playgroud)

java javafx gradle java-module java-11

5
推荐指数
1
解决办法
4073
查看次数

如何将本地.jar文件依赖项添加到build.gradle.kt文件?

我经历了有关build.gradle的类似问题,并且浏览了Gradle Kotlin Primer,但看不到如何在build.gradle.kt文件中添加.jar文件。我正在尝试避免使用mavenLocal()

gradle-kotlin-dsl

3
推荐指数
3
解决办法
990
查看次数