Skip to content

Commit 6ec4616

Browse files
author
miroslav2
committed
Fix uberjar shading, support LDC processing with new option 'shade-include'
ea8c2557a731ea114340ae4c559ccef2f45706f3
1 parent f89ac54 commit 6ec4616

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

build/conf/java.conf

+24-8
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,7 @@ _MAKE_JSTYLE_FILE_LIST=
676676
# tag:java-specific
677677
_LINK_UBERJAR=
678678
_UBERJAR_SELF=
679-
_DO_LINK_UBERJAR= && $JDK_RESOURCE/bin/java -cp $UBERJAR_RESOURCE/devtools-java_shader.jar ru.yandex.devtools.emigrante.Main --out-jar $TARGET $_UBERJAR_SELF ${ext=.jar;pre=--jar :MANAGED_PEERS_CLOSURE} ${UBERJAR_PREFIX_FLAG} ${UBERJAR_HIDE_EXCLUDE_FLAGS} $UBERJAR_PATH_EXCLUDES ${UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG} ${UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS} ${UBERJAR_APPENDING_TRANSFORMER_FLAGS} ${UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG} \
679+
_DO_LINK_UBERJAR= && $JDK_RESOURCE/bin/java -cp $UBERJAR_RESOURCE/devtools-java_shader.jar ru.yandex.devtools.emigrante.Main --out-jar $TARGET $_UBERJAR_SELF ${ext=.jar;pre=--jar :MANAGED_PEERS_CLOSURE} ${UBERJAR_PREFIX_FLAG} ${UBERJAR_HIDE_EXCLUDE_FLAGS} ${UBERJAR_HIDE_INCLUDE_FLAGS} $UBERJAR_PATH_EXCLUDES ${UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG} ${UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS} ${UBERJAR_APPENDING_TRANSFORMER_FLAGS} ${UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG} \
680680
&& $YMAKE_PYTHON ${input:"build/scripts/mkdir.py"} $BINDIR/_empty/META-INF \
681681
&& $YMAKE_PYTHON ${input:"build/scripts/touch.py"} $BINDIR/_empty/META-INF/MANIFEST.MF \
682682
&& $UPDATE_VCS_JAVA_INFO_NODEP($TARGET) \
@@ -1442,16 +1442,17 @@ MAKE_UBERJAR_VALUE=
14421442
###
14431443
### You can use the following macros to configure the archive:
14441444
### 1. UBERJAR_HIDING_PREFIX prefix for classes to shade (classes remain in their packages by default)
1445-
### 2. UBERJAR_HIDE_EXCLUDE_PATTERN exclude classes matching this patterns from shading (if enabled).
1446-
### 3. UBERJAR_PATH_EXCLUDE_PREFIX the prefix for classes that should not get into the jar archive (all classes are placed into the archive by default)
1447-
### 4. UBERJAR_MANIFEST_TRANSFORMER_MAIN add ManifestResourceTransformer class to uberjar processing and specify main-class
1448-
### 5. UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE add ManifestResourceTransformer class to uberjar processing and specify some attribute
1449-
### 6. UBERJAR_APPENDING_TRANSFORMER add AppendingTransformer class to uberjar processing
1450-
### 7. UBERJAR_SERVICES_RESOURCE_TRANSFORMER add ServicesResourceTransformer class to uberjar processing
1445+
### 2. UBERJAR_HIDE_INCLUDE_PATTERN include classes matching this patterns to shading, include LDC mapping
1446+
### 3. UBERJAR_HIDE_EXCLUDE_PATTERN exclude classes matching this patterns from shading (if enabled).
1447+
### 4. UBERJAR_PATH_EXCLUDE_PREFIX the prefix for classes that should not get into the jar archive (all classes are placed into the archive by default)
1448+
### 5. UBERJAR_MANIFEST_TRANSFORMER_MAIN add ManifestResourceTransformer class to uberjar processing and specify main-class
1449+
### 6. UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE add ManifestResourceTransformer class to uberjar processing and specify some attribute
1450+
### 7. UBERJAR_APPENDING_TRANSFORMER add AppendingTransformer class to uberjar processing
1451+
### 8. UBERJAR_SERVICES_RESOURCE_TRANSFORMER add ServicesResourceTransformer class to uberjar processing
14511452
###
14521453
### Documentation: https://wiki.yandex-team.ru/yatool/java/
14531454
###
1454-
### @see: [JAVA_PROGRAM](#module_JAVA_PROGRAM), [UBERJAR_HIDING_PREFIX](#macro_UBERJAR_HIDING_PREFIX), [UBERJAR_HIDE_EXCLUDE_PATTERN](#macro_UBERJAR_HIDE_EXCLUDE_PATTERN), [UBERJAR_PATH_EXCLUDE_PREFIX](#macro_UBERJAR_PATH_EXCLUDE_PREFIX)
1455+
### @see: [JAVA_PROGRAM](#module_JAVA_PROGRAM), [UBERJAR_HIDING_PREFIX](#macro_UBERJAR_HIDING_PREFIX), [UBERJAR_HIDE_INCLUDE_PATTERN](#macro_UBERJAR_HIDE_INCLUDE_PATTERN) [UBERJAR_HIDE_EXCLUDE_PATTERN](#macro_UBERJAR_HIDE_EXCLUDE_PATTERN), [UBERJAR_PATH_EXCLUDE_PREFIX](#macro_UBERJAR_PATH_EXCLUDE_PREFIX)
14551456
macro UBERJAR() {
14561457
SET(MAKE_UBERJAR_VALUE yes)
14571458
DISABLE(PASS_PEERS)
@@ -1486,6 +1487,21 @@ macro UBERJAR_HIDE_EXCLUDE_PATTERN(Args...) {
14861487
SET_APPEND(UBERJAR_HIDE_EXCLUDE_FLAGS ${pre=--shade-exclude :Args})
14871488
}
14881489

1490+
1491+
UBERJAR_HIDE_INCLUDE_VALUE=
1492+
UBERJAR_HIDE_INCLUDE_FLAGS=
1493+
### @usage: UBERJAR_HIDE_INCLUDE_PATTERN(Args...)
1494+
###
1495+
### Include classes matching this patterns to shading, enabled LDC processing.
1496+
### Pattern may contain '*' and '**' globs.
1497+
### Shading is enabled for UBERJAR program using UBERJAR_HIDING_PREFIX macro. If this macro is not specified all classes are shaded.
1498+
###
1499+
### @see: [UBERJAR](#macro_UBERJAR), [UBERJAR_HIDING_PREFIX](#macro_UBERJAR_HIDING_PREFIX)
1500+
macro UBERJAR_HIDE_INCLUDE_PATTERN(Args...) {
1501+
SET_APPEND(UBERJAR_HIDE_INCLUDE_VALUE $ARGS_DELIM $Args)
1502+
SET_APPEND(UBERJAR_HIDE_INCLUDE_FLAGS ${pre=--shade-include :Args})
1503+
}
1504+
14891505
# tag:java-specific
14901506
UBERJAR_PATH_EXCLUDES=
14911507
UBERJAR_PATH_EXCLUDE_VALUE=

0 commit comments

Comments
 (0)