Skip to content

Commit 4718c11

Browse files
Add incremental build and project references to java projects (#25707)
* Add incremental build and project references to java projects * fb * fix version
1 parent 0a33267 commit 4718c11

File tree

7 files changed

+95
-74
lines changed

7 files changed

+95
-74
lines changed

Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@
217217
<Import Project="eng\targets\CSharp.Common.props" Condition="'$(MSBuildProjectExtension)' == '.csproj'" />
218218
<Import Project="eng\targets\Wix.Common.props" Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
219219
<Import Project="eng\targets\Npm.Common.props" Condition="'$(MSBuildProjectExtension)' == '.npmproj'" />
220+
<Import Project="eng\targets\Java.Common.props" Condition="'$(MSBuildProjectExtension)' == '.javaproj'" />
220221
<Import Project="eng\targets\Helix.props" Condition="'$(IsTestProject)' == 'true'" />
221222

222223
</Project>

Directory.Build.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@
186186
<Import Project="eng\targets\FSharp.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.fsproj'" />
187187
<Import Project="eng\targets\Wix.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
188188
<Import Project="eng\targets\Npm.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.npmproj'" />
189+
<Import Project="eng\targets\Java.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.javaproj'" />
189190
<Import Project="eng\targets\Helix.targets" Condition="'$(IsTestProject)' == 'true'" />
190191
<Import Project="eng\targets\FunctionalTestAsset.targets" Condition="'$(IsTestAssetProject)' == 'true'" />
191192
<Import Project="eng\targets\FunctionalTestWithAssets.targets" Condition="'$(ContainsFunctionalTestAssets)' == 'true'" />

eng/targets/Java.Common.props

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<Project>
2+
<PropertyGroup>
3+
<!-- Disable gradle daemon on CI since the CI seems to try to wait for the daemon to shut down, which it doesn't do -->
4+
<GradleOptions Condition="'$(ContinuousIntegrationBuild)' == 'true'">$(GradleOptions) -Dorg.gradle.daemon=false</GradleOptions>
5+
<PackOnBuild>false</PackOnBuild>
6+
</PropertyGroup>
7+
</Project>

eng/targets/Java.Common.targets

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<Project DefaultTargets="Build">
2+
3+
<PropertyGroup>
4+
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$(ArtifactsDir)\obj\</BaseIntermediateOutputPath>
5+
<IntermediateOutputPath>$([MSBuild]::NormalizeDirectory('$(BaseIntermediateOutputPath)'))$(Configuration)\</IntermediateOutputPath>
6+
<BuildDependsOn>
7+
PrepareForBuild;
8+
ResolveProjectReferences;
9+
_Build;
10+
</BuildDependsOn>
11+
<JavaBuildArgs Condition="'$(JavaBuildArgs)' == ''">../gradlew $(GradleOptions) compileJava</JavaBuildArgs>
12+
<GradleOptions>$(GradleOptions) -PpackageVersion="$(PackageVersion)"</GradleOptions>
13+
</PropertyGroup>
14+
15+
<ItemGroup>
16+
<JavaFiles Include="src\**\*.java" />
17+
<JavaFiles Include="*.javaproj" />
18+
<JavaFiles Include="build.gradle" />
19+
20+
<BuildOutputFiles Include="$(BaseIntermediateOutputPath)build-sentinel" />
21+
</ItemGroup>
22+
23+
<Target Name="Restore" />
24+
25+
<Target Name="PrepareForBuild">
26+
<MakeDir Directories="$(IntermediateOutputPath);$(PackageOutputPath)" />
27+
</Target>
28+
29+
<Target Name="ResolveProjectReferences">
30+
<MSBuild Projects="@(ProjectReference)"
31+
BuildInParallel="true" />
32+
</Target>
33+
34+
<Target Name="Build" DependsOnTargets="$(BuildDependsOn)" />
35+
36+
<Target Name="GetBuildInputCacheFile">
37+
<Hash ItemsToHash="@(JavaFiles)">
38+
<Output TaskParameter="HashResult" PropertyName="_JavaFileHash" />
39+
</Hash>
40+
41+
<WriteLinesToFile
42+
Lines="$(_JavaFileHash)"
43+
File="$(BaseIntermediateOutputPath)javafiles.cache"
44+
Overwrite="True"
45+
WriteOnlyWhenDifferent="True" />
46+
</Target>
47+
48+
<Target Name="_Build"
49+
Condition="'$(IsBuildable)' != 'false'"
50+
DependsOnTargets="GetBuildInputCacheFile"
51+
Inputs="@(JavaFiles);$(BaseIntermediateOutputPath)javafiles.cache"
52+
Outputs="@(BuildOutputFiles)">
53+
<Telemetry EventName="NETCORE_ENGINEERING_TELEMETRY" EventData="Category=Build" />
54+
<Exec Command="$(JavaBuildArgs)" />
55+
<WriteLinesToFile Overwrite="true" File="$(BaseIntermediateOutputPath)build-sentinel" />
56+
</Target>
57+
58+
<PropertyGroup>
59+
<PackDependsOn Condition="'$(NoBuild)' != 'true'">
60+
Build;
61+
$(PackDependsOn);
62+
</PackDependsOn>
63+
</PropertyGroup>
64+
65+
<Target Name="Pack" Condition="'$(IsPackable)' == 'true'" DependsOnTargets="$(PackDependsOn)">
66+
<Telemetry EventName="NETCORE_ENGINEERING_TELEMETRY" EventData="Category=Pack" />
67+
<Message Text="> gradlew $(GradleOptions) createPackage" Importance="high" />
68+
<Exec Command="../gradlew $(GradleOptions) createPackage" />
69+
<Message Importance="high" Text="$(PackageId) -> $(PackageOutputPath)%(JavaBuildFiles.Identity)" />
70+
<Copy SourceFiles="$(MSBuildProjectDirectory)\build\libs\%(JavaBuildFiles.Identity)" DestinationFolder="$(PackageOutputPath)" />
71+
</Target>
72+
73+
<Target Name="Test" />
74+
75+
<Target Name="Publish" />
76+
77+
</Project>

src/SignalR/clients/java/signalr/core/signalr.client.java.core.javaproj

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
<!-- In servicing builds, this will be set to value if the Java client is not configured to be released in the currently building patch. -->
88
<IsPackable>true</IsPackable>
99
<IsTestProject>false</IsTestProject>
10-
<!-- Disable gradle daemon on CI since the CI seems to try to wait for the daemon to shut down, which it doesn't do :) -->
11-
<GradleOptions Condition="'$(ContinuousIntegrationBuild)' == 'true'">$(GradleOptions) -Dorg.gradle.daemon=false</GradleOptions>
1210
<PublishDir>$(OutputPath)</PublishDir>
1311
</PropertyGroup>
1412

@@ -21,37 +19,5 @@
2119
<JavaBuildFiles Include="@(Jars);@(PomFile)"/>
2220
</ItemGroup>
2321

24-
<Target Name="Restore" />
25-
26-
<PropertyGroup>
27-
<PackDependsOn Condition=" '$(NoBuild)' != 'true' ">
28-
$(PackDependsOn);
29-
Build
30-
</PackDependsOn>
31-
</PropertyGroup>
32-
3322
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
34-
35-
<PropertyGroup>
36-
<GradleOptions>$(GradleOptions) -PpackageVersion="$(PackageVersion)"</GradleOptions>
37-
</PropertyGroup>
38-
39-
<!-- Define Target overrides after importing Directory.Build.targets so these don't get overridden -->
40-
<Target Name="Pack" DependsOnTargets="$(PackDependsOn)" Condition="'$(IsPackable)' == 'true'">
41-
<Telemetry EventName="NETCORE_ENGINEERING_TELEMETRY" EventData="Category=Pack" />
42-
<Message Text="> gradlew $(GradleOptions) createPackage" Importance="high" />
43-
<Exec Command="../gradlew $(GradleOptions) createPackage" />
44-
<Message Importance="high" Text="java:signalr -> $(PackageOutputPath)%(JavaBuildFiles.Identity)" />
45-
<Copy SourceFiles="$(MSBuildThisFileDirectory)build\libs\%(JavaBuildFiles.Identity)" DestinationFolder="$(PackageOutputPath)" />
46-
</Target>
47-
48-
<Target Name="Build">
49-
<Telemetry EventName="NETCORE_ENGINEERING_TELEMETRY" EventData="Category=Build" />
50-
<Exec Command="../gradlew $(GradleOptions) compileJava" />
51-
</Target>
52-
53-
<Target Name="Test" />
54-
55-
<Target Name="Publish" />
56-
5723
</Project>

src/SignalR/clients/java/signalr/messagepack/signalr.client.java.messagepack.javaproj

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
<!-- In servicing builds, this will be set to value if the Java client is not configured to be released in the currently building patch. -->
88
<IsPackable>true</IsPackable>
99
<IsTestProject>false</IsTestProject>
10-
<!-- Disable gradle daemon on CI since the CI seems to try to wait for the daemon to shut down, which it doesn't do :) -->
11-
<GradleOptions Condition="'$(ContinuousIntegrationBuild)' == 'true'">$(GradleOptions) -Dorg.gradle.daemon=false</GradleOptions>
1210
<PublishDir>$(OutputPath)</PublishDir>
1311
</PropertyGroup>
1412

@@ -21,37 +19,9 @@
2119
<JavaBuildFiles Include="@(Jars);@(PomFile)"/>
2220
</ItemGroup>
2321

24-
<Target Name="Restore" />
25-
26-
<PropertyGroup>
27-
<PackDependsOn Condition=" '$(NoBuild)' != 'true' ">
28-
$(PackDependsOn);
29-
Build
30-
</PackDependsOn>
31-
</PropertyGroup>
22+
<ItemGroup>
23+
<ProjectReference Include="../core/signalr.client.java.core.javaproj" />
24+
</ItemGroup>
3225

3326
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
34-
35-
<PropertyGroup>
36-
<GradleOptions>$(GradleOptions) -PpackageVersion="$(PackageVersion)"</GradleOptions>
37-
</PropertyGroup>
38-
39-
<!-- Define Target overrides after importing Directory.Build.targets so these don't get overridden -->
40-
<Target Name="Pack" DependsOnTargets="$(PackDependsOn)" Condition="'$(IsPackable)' == 'true'">
41-
<Telemetry EventName="NETCORE_ENGINEERING_TELEMETRY" EventData="Category=Pack" />
42-
<Message Text="> gradlew $(GradleOptions) createPackage" Importance="high" />
43-
<Exec Command="../gradlew $(GradleOptions) createPackage" />
44-
<Message Importance="high" Text="java:signalr-messagepack -> $(PackageOutputPath)%(JavaBuildFiles.Identity)" />
45-
<Copy SourceFiles="$(MSBuildThisFileDirectory)build\libs\%(JavaBuildFiles.Identity)" DestinationFolder="$(PackageOutputPath)" />
46-
</Target>
47-
48-
<Target Name="Build">
49-
<Telemetry EventName="NETCORE_ENGINEERING_TELEMETRY" EventData="Category=Build" />
50-
<Exec Command="../gradlew $(GradleOptions) compileJava" />
51-
</Target>
52-
53-
<Target Name="Test" />
54-
55-
<Target Name="Publish" />
56-
5727
</Project>

src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,23 @@
88
<SkipHelixArm>true</SkipHelixArm>
99
<!-- Skipping on Helix for now -->
1010
<BuildHelixPayload>false</BuildHelixPayload>
11-
<!-- Disable gradle daemon on CI since the CI seems to try to wait for the daemon to shut down, which it doesn't do :) -->
12-
<GradleOptions Condition="'$(ContinuousIntegrationBuild)' == 'true'">$(GradleOptions) -Dorg.gradle.daemon=false</GradleOptions>
1311
<PublishDir>$(OutputPath)</PublishDir>
1412
<TestDependsOnJava>true</TestDependsOnJava>
1513
</PropertyGroup>
1614

15+
<ItemGroup>
16+
<ProjectReference Include="../core/signalr.client.java.core.javaproj" />
17+
<ProjectReference Include="../messagepack/signalr.client.java.messagepack.javaproj" />
18+
</ItemGroup>
19+
1720
<Target Name="Restore" />
1821

1922
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
2023

2124
<!-- Define Target overrides after importing Directory.Build.targets so these don't get overridden -->
2225
<Target Name="Pack" />
2326

24-
<Target Name="Build" />
25-
26-
<Target Name="Test" Condition="'$(SkipTests)' != 'true'">
27+
<Target Name="Test" Condition="'$(SkipTests)' != 'true'" DependsOnTargets="Build">
2728
<Telemetry EventName="NETCORE_ENGINEERING_TELEMETRY" EventData="Category=Test" />
2829
<Message Text="Running Java client tests" Importance="high" />
2930
<Message Text="> gradlew $(GradleOptions) test" Importance="high" />
@@ -46,8 +47,6 @@
4647
</Target>
4748

4849
<PropertyGroup>
49-
<!-- Pass the Java Package Version down to Gradle -->
50-
<GradleOptions>$(GradleOptions) -PpackageVersion="$(PackageVersion)"</GradleOptions>
5150
<HelixCommand>chmod +x ./gradlew &amp;&amp; ./gradlew $(GradleOptions) test</HelixCommand>
5251
<HelixCommand Condition="'$(IsWindowsHelixQueue)' == 'true'">call gradlew $(GradleOptions) test</HelixCommand>
5352
</PropertyGroup>

0 commit comments

Comments
 (0)