在你问为什么我可以生成一个进程来执行mvn之前,我希望通过Maven API执行一个Maven构建,这样我就可以收集关于构建中发生的事情,产生的工件等的信息.依赖于org.apache.maven:maven-core:jar:3.0.4,我写了以下方法试图做这样的事情:
public static void build(File directory, File pom) {
Maven maven = new DefaultMaven();
MavenExecutionRequest exec = new DefaultMavenExecutionRequest();
exec.setBaseDirectory(directory);
exec.setPom(pom);
MavenExecutionResult result = maven.execute(exec);
MavenProject proj = result.getProject();
Artifact art = proj.getArtifact();
System.out.println(art);
}
Run Code Online (Sandbox Code Playgroud)
但是,maven.execute由于空指针异常,此代码失败.由于DefaultMaven未初始化私有字段,这些空指针异常基本上无处不在.它们都带有注释@Required,所以我猜这与Plexus有关.
如何成功使用Maven来执行这样的构建?
好吧,我注意到在Java和大概其他语言中,有一个Socket选项类似于
setTrafficClass(int tc)
Run Code Online (Sandbox Code Playgroud)
我知道我正在使用的应用程序的流量类别为24,但是尽管进行了谷歌搜索,但我找不到这些类别所对应的列表,也找不到有效类别的列表。
请赐教。md_5
我需要使用Groovy脚本或Maven插件在编译时生成jar然后将其安装到本地存储库,以便可以在编译过程中使用(即依赖将由构建过程满足,并且不通过任何外部回购下载).在编译/依赖关系解析开始之前,我已经使用了一个groovy脚本来创建这个jar.
由于在创建Mojo之外使用Maven的API文档很小,我想要一些指向将这个jar放到本地存储库中.
在此先感谢,md_5.
编辑:我也希望有一种方法可以预先知道神器是否在maven repo中.
我试图在不使用标准库的情况下进入一些 Linux 64 位 x86 程序集,但是我在处理提交给我的程序 (argv) 的参数时遇到了一些问题。我认为(基于文档)这rsp标志着 argc qword 的开始,而[rsp + 8]将是 argv。不幸的是,情况并非如此,以下(删节的)程序会导致EFAULT (Bad address).
sys_execve equ 59
sys_exit equ 60
section .data
child db "/bin/sh", 0
global _start
section .text
_start:
mov rdi, child ; #1 filename
mov rsi, [rsp + 8] ; #2 argv
mov rdx, 0 ; #3 envp = 0
mov rax, sys_execve ; execve
syscall
mov rax, rdi ; #1 Return value
mov rax, sys_exit ; exit
syscall …Run Code Online (Sandbox Code Playgroud) java ×3
maven ×2
assembly ×1
linux ×1
maven-plugin ×1
nasm ×1
pointers ×1
sockets ×1
system-calls ×1
tcp ×1