# \#software-model

**URL:** https://discuss.gradle.org/tag/software-model/55.md

[Latest](https://discuss.gradle.org/latest.md) · [Categories](https://discuss.gradle.org/categories.md) · [Tags](https://discuss.gradle.org/tags.md)

---

## [Plans for Gradle Play plugin](https://discuss.gradle.org/t/plans-for-gradle-play-plugin/28672)

<div class="topic-metadata">

**Author:** [@joschi](https://discuss.gradle.org/u/joschi)\
**Replies:** 0\
**Last updated:** [September 18, 2018, 8:52pm UTC](https://discuss.gradle.org/t/plans-for-gradle-play-plugin/28672 "2018-09-18T20:52:58Z")

</div>

Hi everyone! Does anybody know if there are any plans to migrate the Gradle Play plugin, which is based on the (deprecated?) Gradle Software Model, to a more traditional plugin based on the Gradle Java plugin or Gradle …

---

## [Clarification on the Gradle model](https://discuss.gradle.org/t/clarification-on-the-gradle-model/26897)

<div class="topic-metadata">

**Author:** [@k3v1n4ud3](https://discuss.gradle.org/u/k3v1n4ud3)\
**Replies:** 6\
**Last updated:** [June 4, 2018, 9:07am UTC](https://discuss.gradle.org/t/clarification-on-the-gradle-model/26897 "2018-06-04T09:07:08Z")

</div>

Hello, I’ve been looking into using Gradle for projects written in C. From what I can see, it used to be done using the c plugin and the model{} block. I thought that the model was meant to be modified using Rule based …

---

## [How to change the order of task/rules correctly?](https://discuss.gradle.org/t/how-to-change-the-order-of-task-rules-correctly/25944)

<div class="topic-metadata">

**Author:** [@M\_Raab](https://discuss.gradle.org/u/M_Raab)\
**Replies:** 0\
**Last updated:** [February 22, 2018, 4:53pm UTC](https://discuss.gradle.org/t/how-to-change-the-order-of-task-rules-correctly/25944 "2018-02-22T16:53:04Z")

</div>

I tried to add additional artifacts to a publication and I used the model space to solve my issue. Therefore I added a static class to my plugin: static class Rules extends RuleSource { @Mutate pub…

---

## [Model Rule if element exists](https://discuss.gradle.org/t/model-rule-if-element-exists/25189)

<div class="topic-metadata">

**Author:** [@dhakehurst](https://discuss.gradle.org/u/dhakehurst)\
**Replies:** 4\
**Last updated:** [January 10, 2018, 11:34pm UTC](https://discuss.gradle.org/t/model-rule-if-element-exists/25189 "2018-01-10T23:34:27Z")

</div>

I am trying to write a rule that will be executed if a node in the software model exists. this works fine if the component has been defined, but I can’t find a way to apply the rule if the component exists. i.e. clas…

---

## [Compute "-Wl,-rpath ..." flag suitable for native shared library](https://discuss.gradle.org/t/compute-wl-rpath-flag-suitable-for-native-shared-library/25278)

<div class="topic-metadata">

**Author:** [@liblit](https://discuss.gradle.org/u/liblit)\
**Replies:** 0\
**Last updated:** [December 27, 2017, 11:37pm UTC](https://discuss.gradle.org/t/compute-wl-rpath-flag-suitable-for-native-shared-library/25278 "2017-12-27T23:37:47Z")

</div>

I am building a native executable that depends on a prebuilt shared library installed in a non-standard location. Let’s call that prebuilt library “zebra”. On Linux it would be appropriate to use -Wl,-rpath to help my ex…

---

## [Strategy to integrate 2 web project](https://discuss.gradle.org/t/strategy-to-integrate-2-web-project/23889)

<div class="topic-metadata">

**Author:** [@bungrudi](https://discuss.gradle.org/u/bungrudi)\
**Replies:** 0\
**Last updated:** [August 28, 2017, 3:16am UTC](https://discuss.gradle.org/t/strategy-to-integrate-2-web-project/23889 "2017-08-28T03:16:13Z")

</div>

My web project look like this, /root-project +--|--/web project A |--/web project B |--/library C |--/library D Web project A and B is now integrated into 1 runtime (1 war). Currently this is don…

---

## [\[New software model\] Groovy Support in the Component Model](https://discuss.gradle.org/t/new-software-model-groovy-support-in-the-component-model/18714)

<div class="topic-metadata">

**Author:** [@hWorblehat](https://discuss.gradle.org/u/hWorblehat)\
**Replies:** 3\
**Last updated:** [August 24, 2017, 4:08pm UTC](https://discuss.gradle.org/t/new-software-model-groovy-support-in-the-component-model/18714 "2017-08-24T16:08:19Z")

</div>

Hi, I was trying to compile a java and groovy project using the component model, something like: model { components { myLib(JvmLibrarySpec) { sources { groovy(GroovySourceSet)…

---

## [What's the status of Gradle's Software Model?](https://discuss.gradle.org/t/whats-the-status-of-gradles-software-model/22448)

<div class="topic-metadata">

**Author:** [@hWorblehat](https://discuss.gradle.org/u/hWorblehat)\
**Replies:** 1\
**Last updated:** [August 24, 2017, 4:05pm UTC](https://discuss.gradle.org/t/whats-the-status-of-gradles-software-model/22448 "2017-08-24T16:05:12Z")

</div>

When I first discovered Gradle's incubating "Software Model" and rule-based configuration system, I was very impressed. This way of declaratively describing what a build should have, and allowing generic rules to determ…

---

## [Multiple outputs from a single task in the software model](https://discuss.gradle.org/t/multiple-outputs-from-a-single-task-in-the-software-model/23141)

<div class="topic-metadata">

**Author:** [@axl](https://discuss.gradle.org/u/axl)\
**Replies:** 1\
**Last updated:** [June 30, 2017, 6:43am UTC](https://discuss.gradle.org/t/multiple-outputs-from-a-single-task-in-the-software-model/23141 "2017-06-30T06:43:46Z")

</div>

How would I model a single component/binary/binary task in the software model which produces multiple output files? The way I read the docs suggests that I would make a component, which produces multiple binaries, which …

---

## [Building Golang software](https://discuss.gradle.org/t/building-golang-software/21877)

<div class="topic-metadata">

**Author:** [@samoht](https://discuss.gradle.org/u/samoht)\
**Replies:** 1\
**Last updated:** [March 9, 2017, 2:56pm UTC](https://discuss.gradle.org/t/building-golang-software/21877 "2017-03-09T14:56:56Z")

</div>

Chapter Building native software from the user guide lists the usual suspects of supported languages, however one native language recently gaining quite some popularity seems to be missing ... Golang I understand that …

---

## [Correct way to generate tasks from extensions?](https://discuss.gradle.org/t/correct-way-to-generate-tasks-from-extensions/21694)

<div class="topic-metadata">

**Author:** [@Mark\_Elliot](https://discuss.gradle.org/u/Mark_Elliot)\
**Replies:** 2\
**Last updated:** [February 21, 2017, 8:55pm UTC](https://discuss.gradle.org/t/correct-way-to-generate-tasks-from-extensions/21694 "2017-02-21T20:55:32Z")

</div>

I have an extension that I'd like to use to drive creation of several tasks, contingent on settings in the extension. Looking at, as an example, the MavenPublishPlugin, I see that this is now done, at least internally to…

---

## [Gradle 3.2.1 breaks 'junit-test-suite' and 'java' interop](https://discuss.gradle.org/t/gradle-3-2-1-breaks-junit-test-suite-and-java-interop/20868)

<div class="topic-metadata">

**Author:** [@Shorttail](https://discuss.gradle.org/u/Shorttail)\
**Replies:** 3\
**Last updated:** [February 11, 2017, 7:42pm UTC](https://discuss.gradle.org/t/gradle-3-2-1-breaks-junit-test-suite-and-java-interop/20868 "2017-02-11T19:42:24Z")

</div>

I’m using the following plugins together: junit-test-suite, java and eclipse. On switching to Gradle 3.2.1, building a projects fails with the vaguest error: \* What went wrong: Exception thrown while executing model …

---

## [Native Support for Fortran and C/C++ Mixed](https://discuss.gradle.org/t/native-support-for-fortran-and-c-c-mixed/21414)

<div class="topic-metadata">

**Author:** [@mraupp081079](https://discuss.gradle.org/u/mraupp081079)\
**Replies:** 0\
**Last updated:** [January 31, 2017, 8:50pm UTC](https://discuss.gradle.org/t/native-support-for-fortran-and-c-c-mixed/21414 "2017-01-31T20:50:32Z")

</div>

I need to be able to compile Fortran and C/C++ code and link the object files together. I also need to be able to compile on both Windows and Linux and detect which compilers are installed: VisualFortran, msbuild.exe, gc…

---

## [Gradle: how to create maven publication from inside rule block](https://discuss.gradle.org/t/gradle-how-to-create-maven-publication-from-inside-rule-block/21379)

<div class="topic-metadata">

**Author:** [@John2](https://discuss.gradle.org/u/John2)\
**Replies:** 0\
**Last updated:** [January 28, 2017, 3:10pm UTC](https://discuss.gradle.org/t/gradle-how-to-create-maven-publication-from-inside-rule-block/21379 "2017-01-28T15:10:25Z")

</div>

I want to create a maven publication from inside a RuleSource that will be published via the maven-publish plugin. The artifacts of the publication are the outputs from a series of Zip tasks that are created from rules.…

---

## [Gradle 3: how to add to model elements from inside a custom plugin?](https://discuss.gradle.org/t/gradle-3-how-to-add-to-model-elements-from-inside-a-custom-plugin/21280)

<div class="topic-metadata">

**Author:** [@John2](https://discuss.gradle.org/u/John2)\
**Replies:** 2\
**Last updated:** [January 26, 2017, 5:03pm UTC](https://discuss.gradle.org/t/gradle-3-how-to-add-to-model-elements-from-inside-a-custom-plugin/21280 "2017-01-26T17:03:18Z")

</div>

I have a build.gradle file that is used to build C++ files across a number of platforms. This is done in a number of projects, all of which target the same platforms. I'd like to move this code to a separate plugin to …

---

## [How do I configure a ModelMap element after the "all" method has run?](https://discuss.gradle.org/t/how-do-i-configure-a-modelmap-element-after-the-all-method-has-run/21133)

<div class="topic-metadata">

**Author:** [@Martin\_d\_Anjou](https://discuss.gradle.org/u/Martin_d_Anjou)\
**Replies:** 2\
**Last updated:** [January 13, 2017, 4:57pm UTC](https://discuss.gradle.org/t/how-do-i-configure-a-modelmap-element-after-the-all-method-has-run/21133 "2017-01-13T16:57:24Z")

</div>

ModelMap has an all method which I use to set a property in all elements. But I also want to override for some other elements. The following code shows how I thought I could do this for my custom plugin: model { pr…

---

## [Specifying variant specific external dependencies in Java software model](https://discuss.gradle.org/t/specifying-variant-specific-external-dependencies-in-java-software-model/20726)

<div class="topic-metadata">

**Author:** [@abishek3876](https://discuss.gradle.org/u/abishek3876)\
**Replies:** 0\
**Last updated:** [December 6, 2016, 8:57am UTC](https://discuss.gradle.org/t/specifying-variant-specific-external-dependencies-in-java-software-model/20726 "2016-12-06T08:57:19Z")

</div>

I am trying out the incubating new software model for building my Java project by going thought the documentation at https://docs.gradle.org/current/userguide/java\_software.html What I would like to do is have differen…

---

## [How to change JDK of JUnitTestSuiteSpec](https://discuss.gradle.org/t/how-to-change-jdk-of-junittestsuitespec/20638)

<div class="topic-metadata">

**Author:** [@johnscancella](https://discuss.gradle.org/u/johnscancella)\
**Replies:** 0\
**Last updated:** [November 29, 2016, 3:48pm UTC](https://discuss.gradle.org/t/how-to-change-jdk-of-junittestsuitespec/20638 "2016-11-29T15:48:18Z")

</div>

Hello, I have some junit tests that only run under java8. Before using the software model I could change the test task so that it would use java8 by doing test { sourceCompatibility = 1.8 targetCompatibility = …

---

## [Get test output for new software model testing](https://discuss.gradle.org/t/get-test-output-for-new-software-model-testing/20580)

<div class="topic-metadata">

**Author:** [@johnscancella](https://discuss.gradle.org/u/johnscancella)\
**Replies:** 0\
**Last updated:** [November 23, 2016, 4:06pm UTC](https://discuss.gradle.org/t/get-test-output-for-new-software-model-testing/20580 "2016-11-23T16:06:19Z")

</div>

Hello, Perhaps I am missing something obvious, but how do I get the test output in the new software-model? In the "old way" of doing things I could just say test { testLogging.showStandardStreams = true } here…

---

## [Creating a detached configuration in a rule-based plugin](https://discuss.gradle.org/t/creating-a-detached-configuration-in-a-rule-based-plugin/20354)

<div class="topic-metadata">

**Author:** [@Chris\_Dore](https://discuss.gradle.org/u/Chris_Dore)\
**Replies:** 0\
**Last updated:** [November 8, 2016, 4:44am UTC](https://discuss.gradle.org/t/creating-a-detached-configuration-in-a-rule-based-plugin/20354 "2016-11-08T04:44:37Z")

</div>

Hi, I'm looking for suggestions on how to create a detached configuration in a rule-based plugin. Without access to project.configurations I'm not sure that it can be achieved, without getting the user of the plugin to…

---

## [Command line parameters as part of rules model inputs](https://discuss.gradle.org/t/command-line-parameters-as-part-of-rules-model-inputs/16718)

<div class="topic-metadata">

**Author:** [@mkobit](https://discuss.gradle.org/u/mkobit)\
**Replies:** 3\
**Last updated:** [November 7, 2016, 1:39pm UTC](https://discuss.gradle.org/t/command-line-parameters-as-part-of-rules-model-inputs/16718 "2016-11-07T13:39:25Z")

</div>

Right now, it seems like the way to pass in properties to a build is by either using the -P command line option, or by using the @Option as part of a task input. I'm interested in knowing how command line inputs will b…

---

## [Best way to implement pugin for Java source transformation files with rule based model](https://discuss.gradle.org/t/best-way-to-implement-pugin-for-java-source-transformation-files-with-rule-based-model/19982)

<div class="topic-metadata">

**Author:** [@jochens](https://discuss.gradle.org/u/jochens)\
**Replies:** 1\
**Last updated:** [October 13, 2016, 3:16pm UTC](https://discuss.gradle.org/t/best-way-to-implement-pugin-for-java-source-transformation-files-with-rule-based-model/19982 "2016-10-13T15:16:20Z")

</div>

Hi, my goal is to write a plugin that transforms a DSL into Java source code, which is then compiled with the standard Java source sets using the "compile" task. The solutions I tried are: Creating a LanguageTrans…

---

## [Manually instantiate managed type in rule](https://discuss.gradle.org/t/manually-instantiate-managed-type-in-rule/19741)

<div class="topic-metadata">

**Author:** [@jochens](https://discuss.gradle.org/u/jochens)\
**Replies:** 0\
**Last updated:** [September 27, 2016, 12:07pm UTC](https://discuss.gradle.org/t/manually-instantiate-managed-type-in-rule/19741 "2016-09-27T12:07:12Z")

</div>

Hi, I am creating a plugin that has a model consisting of two managed types A and B, where A contains a property of type B. The property should be mutable, so I created a getter and a setter for it. The property shou…

---

## [@Mutate ModelMap task dependencies weirdness](https://discuss.gradle.org/t/mutate-modelmap-task-dependencies-weirdness/19521)

<div class="topic-metadata">

**Author:** [@mkobit](https://discuss.gradle.org/u/mkobit)\
**Replies:** 0\
**Last updated:** [September 14, 2016, 2:45am UTC](https://discuss.gradle.org/t/mutate-modelmap-task-dependencies-weirdness/19521 "2016-09-14T02:45:27Z")

</div>

Example build.gradle group 'com.mkobit.test' version '1.0-SNAPSHOT' class MyPlugin implements Plugin\<Project\> { @Override void apply(final Project project) { project.tasks.create('firstTask') { doFirst…

---

## [How to retrieve dependancy library component](https://discuss.gradle.org/t/how-to-retrieve-dependancy-library-component/19514)

<div class="topic-metadata">

**Author:** [@jvff](https://discuss.gradle.org/u/jvff)\
**Replies:** 0\
**Last updated:** [September 13, 2016, 7:50pm UTC](https://discuss.gradle.org/t/how-to-retrieve-dependancy-library-component/19514 "2016-09-13T19:50:56Z")

</div>

I'm attempting to write a plugin that generates packages for native components. One feature I'd like to add is to automatically add dependency meta-information to the packages based on the declared dependencies. For exam…

---

## [How to retrieve 'current' platform of a native platform](https://discuss.gradle.org/t/how-to-retrieve-current-platform-of-a-native-platform/19440)

<div class="topic-metadata">

**Author:** [@jvff](https://discuss.gradle.org/u/jvff)\
**Replies:** 1\
**Last updated:** [September 9, 2016, 4:33pm UTC](https://discuss.gradle.org/t/how-to-retrieve-current-platform-of-a-native-platform/19440 "2016-09-09T16:33:21Z")

</div>

I’m writing a custom (software model) plugin that generates distributions for every combination of platform, build type and flavor using all available components in the project. The problem is that the PlatformContainer …

---

## [Custom hashCode and equals method on managed class does not work](https://discuss.gradle.org/t/custom-hashcode-and-equals-method-on-managed-class-does-not-work/19348)

<div class="topic-metadata">

**Author:** [@Daniel\_L](https://discuss.gradle.org/u/Daniel_L)\
**Replies:** 0\
**Last updated:** [September 2, 2016, 5:16pm UTC](https://discuss.gradle.org/t/custom-hashcode-and-equals-method-on-managed-class-does-not-work/19348 "2016-09-02T17:16:15Z")

</div>

Suppose the following simplistic code in build.gradle: @Managed abstract class Foo { @Override int hashCode() { return 42 } } class Rules extends RuleSource { @Model void foo(Foo model) {} } apply plugi…

---

## [Custom Default SourceSets for Components](https://discuss.gradle.org/t/custom-default-sourcesets-for-components/19170)

<div class="topic-metadata">

**Author:** [@pedantic79](https://discuss.gradle.org/u/pedantic79)\
**Replies:** 0\
**Last updated:** [August 24, 2016, 4:27pm UTC](https://discuss.gradle.org/t/custom-default-sourcesets-for-components/19170 "2016-08-24T16:27:51Z")

</div>

So I've been using a Mutate rule to add tasks whenever my component and sourceset are modeled properly together. model { components { comp(CustomComponent) { sources { src(CustomSourceSet) } } } T…

---

## [Why circular plugin inside the NativeComponentPlugin?](https://discuss.gradle.org/t/why-circular-plugin-inside-the-nativecomponentplugin/19148)

<div class="topic-metadata">

**Author:** [@Martin\_d\_Anjou](https://discuss.gradle.org/u/Martin_d_Anjou)\
**Replies:** 0\
**Last updated:** [August 23, 2016, 10:23pm UTC](https://discuss.gradle.org/t/why-circular-plugin-inside-the-nativecomponentplugin/19148 "2016-08-23T22:23:10Z")

</div>

I try to learn how the native plugins are structured, and I came across a strange cycle: CppPlugin applies NativeComponentPlugin NativeComponentPlugin applies StandardToolChainsPlugin StandardToolChainsPlugin app…

---

## [testSuites not seeing non-api classes](https://discuss.gradle.org/t/testsuites-not-seeing-non-api-classes/19064)

<div class="topic-metadata">

**Author:** [@Shorttail](https://discuss.gradle.org/u/Shorttail)\
**Replies:** 2\
**Last updated:** [August 20, 2016, 10:42am UTC](https://discuss.gradle.org/t/testsuites-not-seeing-non-api-classes/19064 "2016-08-20T10:42:12Z")

</div>

I have a test project setup using model with a library named 'main' and a testSuite named 'test'. 'main' has two packages with one class in each with one being exported in the api and the other not exported. How can I gi…

[Next page](https://discuss.gradle.org/tag/software-model/55.md?match_all_tags=true&page=1&tags%5B%5D=software-model)
