Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 编辑Maven编译的存储库源代码_Java_Android_Maven_Compilation - Fatal编程技术网

Java 编辑Maven编译的存储库源代码

Java 编辑Maven编译的存储库源代码,java,android,maven,compilation,Java,Android,Maven,Compilation,我在这里使用maven存储库: 依赖关系是: compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.2.3' 他们的源代码中有一个bug我需要修复。然而,当我打开这个类时,这个方法是预编译的代码,我不能更改它 public void onInitialized() { /* compiled code */ } 你知道我如何在本地对此进行更改吗(即使我必须将依赖项指向计算机上的某个路径也可以,但是我将如何做类似的事情 更

我在这里使用maven存储库:

依赖关系是:

compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.2.3'
他们的源代码中有一个bug我需要修复。然而,当我打开这个类时,这个方法是预编译的代码,我不能更改它

public void onInitialized() { /* compiled code */ }
你知道我如何在本地对此进行更改吗(即使我必须将依赖项指向计算机上的某个路径也可以,但是我将如何做类似的事情

更新

这是我在Android Studio中打开github项目文件夹时的结构。有一个库文件夹,我想变成aar


既然源代码可用,就不必太费劲了

如果无法通过扩展类来解决问题,则可以克隆项目:

git clone https://github.com/CyberAgent/android-gpuimage.git
gradle clean assemble
然后将
gradle.properties
中的版本更改为1.2.3-agressorpatch1(作为示例),以区分工件与原始工件。然后更改要更改的源代码并编译项目:

git clone https://github.com/CyberAgent/android-gpuimage.git
gradle clean assemble
该项目是apache许可的,因此完全可以

创建的jar需要在maven存储库中结束。可以将其本地复制到~/.m2/存储库(或maven repo所在的位置),也可以复制到保持相同结构的文件夹中

file:///sharedfolder/jp/co/cyberagent/android/gpuimage/gpuimage-library/1.2.3-agressorpatch1/gpuimage-library-1.2.3-agressorpatch1.aar
您发布的链接是源存储库,而不是maven存储库

因此,您需要告诉您的构建也使用此位置。我不擅长gradle,但它看起来会像:

repositories {
    maven {
        url "file:///sharedfolder"
    }
}

这节省了您手动反编译类和重新打包工件等操作。

您不能在本地进行修改,但如果您下载该库并添加到project ad模块中,您可以进行修改。谢谢,我将在不久的将来调查您的解决方案!不过有一个问题,您说它是一个源代码库,不是Maven库,但没有
 存储库{mavenCentral()}
我的代码失败了,因为它说它找不到jp.co.cyberagent.android.gpuimage:gpuimage库:1.2.3。那么这到底不是一个Maven中央存储库吗?如果是的话,我假设我将创建一个本地版本,对吗?是的。Maven Central是Maven查找工件的默认存储库。你可以搜索并浏览其内容这里:-这是工件下载作为依赖项使用的jar所需要的。您声明“我正在从这里使用maven存储库:”所以我认为您使用该url作为存储库url(这不起作用)。也许你的意思是你从那里使用工件?所以不管怎样:你需要maven central作为依赖项。你创建的新工件应该有一个新版本,以避免与现有工件重叠。所以我稍微更新了一下这个问题。当我打开github源项目时,实际上有我想要的库,但它是作为子模块添加的(?)在这个项目中,有没有一种方法可以隔离这个库模块(它包含所有的java代码)然后将其编译成aar文件?Sry我不是gradle或android开发人员。library文件夹看起来非常独立:-其中有一个gradle.build文件。因此,如果你在该文件夹中并执行gradle构建,就会出现一些东西?看起来它会创建一个jar(不确定)。如果您在项目中复制或拥有该文件夹,同样的事情也会发生(其Apache许可证,只保留许可证标题不变,这样就可以了)。如何获取aar文件:我不知道:)