-
Notifications
You must be signed in to change notification settings - Fork 1
/
component.mk
46 lines (35 loc) · 1.28 KB
/
component.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
version=$(shell mvn help:evaluate -Dexpression="project.version" | grep -v INFO)
build_final_name=$(shell mvn help:evaluate -Dexpression="project.build.finalName" | grep -v INFO)
sources=$(shell find src/main/ -name '*.java')
tests=$(shell find src/test/ -name '*.java')
pom=$(build_final_name).pom
artifacts=$(addprefix target/, $(addsuffix .jar, $(build_final_name) $(build_final_name)-sources $(build_final_name)-javadoc) $(pom))
signatures=$(addsuffix .asc, $(artifacts))
.PHONY: clean install sign sources javadoc pom bundle
all: bundle
target/:
mkdir -p target
target/.versionok: pom.xml | target/
echo $(version) | grep -v SNAPSHOT
touch $@
install: target/$(build_final_name).jar
target/$(build_final_name).jar: pom.xml $(sources) $(tests) target/.versionok
mvn install
sources: target/$(build_final_name)-sources.jar
target/$(build_final_name)-sources.jar: pom.xml $(sources)
mvn source:jar
javadoc: target/$(build_final_name)-javadoc.jar
target/$(build_final_name)-javadoc.jar: pom.xml $(sources)
mvn javadoc:jar
pom: target/$(pom.xml)
target/$(pom): pom.xml
cp pom.xml $@
%.asc: %
gpg -ab $<
sign: $(signatures)
$(signatures):
bundle: target/bundle.jar
target/bundle.jar: $(signatures) $(artifacts)
jar -cvf target/bundle.jar $(addprefix -C target/ , $(notdir $^))
clean:
mvn clean